本文目录一览:
- 1、thinkPHP怎样使用PHPExcel导出网站数据为excel
- 2、PHP 用PHPExcel往数据库导入大量数据
- 3、yii2 怎么安装和使用PHPExcel?
- 4、thinkphp5.0 如何导入phpexcel插件,能详细些点吗
- 5、thinkphp3.1中的phpexcel导入怎么用
- 6、thinkphp中phpexcel怎么使用
thinkPHP怎样使用PHPExcel导出网站数据为excel
1
一、下载PHPExcel包
2
二、新建文件夹,命名为PHPExcel,将上面两个文件PHPExcel,PHPExcel.php放到我们新建的PHPExcel文件夹下面;然后将此文件夹放在thinkPHP核心包里面,路径如下:D:\***\你的项目\ThinkPHP\Library\Vendor
3
三、前端界面代码
div style="margin-left: 100px;margin-top: -33px;"
form action="{:U(output)}" enctype="multipart/form-data" method="post"
input type="file" name="photo" /
input type="submit" value="导出数据" style="background-color: #337AB7;color: white;"
/form
/div
4
四、导出表格样式代码
//商家表格导出模板
public function exportExcel($expTitle, $expCellName, $expTableData) {
$xlsTitle = iconv('utf-8', 'gb2312', $expTitle); //文件名称
$fileName = '网站商家信息表' . date('_YmdHis'); //or $xlsTitle 文件名称可根据自己情况设定
$cellNum = count($expCellName);
$dataNum = count($expTableData);
vendor("PHPExcel.PHPExcel");
$objPHPExcel = new\PHPExcel();
$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ',
'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV',
'AW', 'AX', 'AY', 'AZ');
$objPHPExcel-getActiveSheet()-getColumnDimension('F')-setWidth(22);
$objPHPExcel-getActiveSheet()-getColumnDimension('D')-setWidth(10);
$objPHPExcel-getActiveSheet()-getColumnDimension('G')-setWidth(10);
$objPHPExcel-getActiveSheet()-getColumnDimension('H')-setWidth(15);
$objPHPExcel-getActiveSheet()-getColumnDimension('A')-setWidth(10);
$objPHPExcel-getActiveSheet()-getColumnDimension('B')-setWidth(15);
$objPHPExcel-getActiveSheet()-getColumnDimension('C')-setWidth(20);
$objPHPExcel-getActiveSheet()-getColumnDimension('E')-setWidth(15);
$objPHPExcel-getActiveSheet()-getColumnDimension('I')-setWidth(20);
$objPHPExcel-getActiveSheet()-getColumnDimension('J')-setWidth(10);
$objPHPExcel-getActiveSheet()-getColumnDimension('K')-setWidth(20);
$objPHPExcel-getActiveSheet()-getColumnDimension('L')-setWidth(20);
$objPHPExcel-getActiveSheet()-getColumnDimension('M')-setWidth(25);
$objPHPExcel-getActiveSheet()-getColumnDimension('L')-setWidth(22);
$objPHPExcel-getActiveSheet()-getColumnDimension('M')-setWidth(12);
$objPHPExcel-getActiveSheet()-getColumnDimension('N')-setWidth(15);
$objPHPExcel-getActiveSheet(0)-mergeCells('A1:' . $cellName[$cellNum - 1] . '1');
//合并单元格
$objPHPExcel-getActiveSheet()-setCellValue('A1',
'网站商家信息表')-getStyle()-getAlignment()-setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
for ($i = 0; $i $cellNum; $i++) {
$objPHPExcel-setActiveSheetIndex(0)-setCellValue($cellName[$i].'2', $expCellName[$i][1]);
}
// Miscellaneous glyphs, UTF-8
for ($i = 0; $i $dataNum; $i++) {
for ($j = 0; $j $cellNum; $j++) {
$objPHPExcel-getActiveSheet(0)-setCellValue($cellName[$j] .
($i + 3), " ".$expTableData[$i][$expCellName[$j][0]]);
}
}
ob_end_clean(); //清除缓冲区,避免乱码
header('pragma:public');
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle. '.xls"');
header("Content-Disposition:attachment;filename=$fileName.xls");
//attachment新窗口打印inline本窗口打印
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter-save('php://output');
exit;
}
5
五、导出所需数据代码
function output($begin=0, $end=0) {//导出商家信息Excel
$xlsName = "User";
$xlsCell = array(
array('userid', '商家id'),
array('groupid', '商家等级'),
array('store_name', '店铺名称'),
array('contact_name', '联系人'),
array('phone', '手机'),
array('email', '邮箱'),
array('activity_count', '活动商品'),
array('frozen_deposit', '冻结中保证金'),
array('regdate', '注册时间'),
array('loginnum', '登录次数'),
array('lastdate', '最近登录'),
array('id_number', '身份证号码'),
array('name', '姓名'),
array('qq', 'QQ'), );
$beginToday = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
$endToday = mktime(0, 0, 0, date('m'), date('d') + 1, date('Y')) - 1;
if ($begin 0) { $beginToday = $begin;}
if ($end 0) {$endToday = $end;}
$xlsModel = M('member');
$xlsData=$xlsModel-query("SELECT
m.userid,m.groupid,c.store_name,c.contact_name,m.phone,m.email,c.frozen_deposit,FROM_UNIXTIME(m.regdate)
AS regdate,loginnum,FROM_UNIXTIME(m.lastdate) AS lastdate,m.qq FROM
xw_member AS m ,xw_member_merchant AS c WHERE m.modelid = 2 AND m.userid
= c.userid and (m.lastdate between $beginToday and $endToday) ORDER BY
m.userid DESC");
$dataNum = count($xlsData);
for ($i = 0; $i $dataNum; $i++){
if ($xlsData[$i][groupid] == '1') {
$xlsData[$i][groupid] = '普通商家';
} else if ($xlsData[$i][groupid] == '2') {
$xlsData[$i][groupid] = '金牌商家';
} else if ($xlsData[$i][groupid] == '3') {
$xlsData[$i][groupid] = '白金商家';
} else if ($xlsData[$i][groupid] == '4') {
$xlsData[$i][groupid] = '钻石商家';
}
$rs=M('member_attesta')-where("userid= '".$xlsData[$i]['userid']."'
AND type = 'identity'")-getField('infos');
$identity = string2array($rs);
$xlsData[$i]['id_number'] = $identity['id_number'];
$xlsData[$i]['name'] = $identity['name'];
$xlsData[$i]['activity_count']=
M('product')-where(array('company_id'=$xlsData[$i]['userid']))-count();
}
$this-exportExcel($xlsName, $xlsCell, $xlsData);
}
}
6
六、导出数据表格如下
PHP 用PHPExcel往数据库导入大量数据
1、首先我们准备一个含有数据的Excel表格,表头和数据表中的表字段相对应。
2、在ThinkPHP中引入PHPExcel类库。
3、然后我们编写导入的PHP代码。
4、然后我们编写导出的PHP代码。
5、然后我们进行导出测试发现可以导出即可。
yii2 怎么安装和使用PHPExcel?
在yii2项目的根目录下的composer.json中的require那里加入
"phpoffice/phpexcel": "dev-develop"
然后使用终端(windows使用cmd)进入yii2项目目录
执行以下命令即可:
composer update
使用的话,就很简单,use导入phpexcel类,然后就可以使用了(具体使用请看文档)
thinkphp5.0 如何导入phpexcel插件,能详细些点吗
下载phpexcel,将整个文件夹放到vendor文件夹里面,如下图
在控制器中的使用方法
vendor("PHPExcel.PHPExcel");
$objPHPExcel = new \PHPExcel();
$file_name = date('YmdHis').'.xls';
header("Content-Disposition:attachment; filename=".$file_name);
$objActSheet = $objPHPExcel-getActiveSheet()-setTitle('成绩单');
$objActSheet-SetCellValue('A1', 'ID');
$objActSheet-SetCellValue('B1', '名称');
$objActSheet-SetCellValue('C1', '分数');
$list = "";//数据列表
if($list){
foreach ($list as $k = $v){
$i = $k + 2;
$objActSheet-SetCellValue('A'.$i,''. $v['id']);
$objActSheet-SetCellValue('B'.$i,''. $v['name']);
$objActSheet-SetCellValue('C'.$i,''. $v['score']);
}
$objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel);
$objWriter-save('php://output');//输出到浏览器
exit;
}
thinkphp3.1中的phpexcel导入怎么用
首先,去PHPExcel官方网站下载PHPExcel,官方地址为;.我下的是1.8.0版本的.解压后发现还是蛮大的,有十几M,不知道其他版本是不是会小点.
这里写图片描述
把解压好的PHPExcel文件放在ThinkPHP的Vender文件夹下(专门放第三方类库的),如下图
这里写图片描述
其次,创建Excel转换数组类,并把它放在ThinkPHP\Extend\Library\ORG\Util目录下
class ExcelToArrary {
public function __construct() {
Vendor("PHPExcel.Classes.PHPExcel");//引入phpexcel类(留意路径,不了解路径可以查看下手册)
Vendor("PHPExcel.Classes.PHPExcel.IOFactory"); //引入phpexcel类(留意路径)
}
public function read($filename,$encode,$file_type){
if(strtolower ( $file_type )=='xls')//判断excel表类型为2003还是2007
{
Vendor("PHPExcel.Classes.PHPExcel.Reader.Excel5"); //引入phpexcel类(留意路径)
$objReader = PHPExcel_IOFactory::createReader('Excel5');
}elseif(strtolower ( $file_type )=='xlsx')
{
Vendor("PHPExcel.Classes.PHPExcel.Reader.Excel2007");//引入phpexcel类(留意路径)
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
}
$objReader-setReadDataOnly(true);
$objPHPExcel = $objReader-load($filename);
$objWorksheet = $objPHPExcel-getActiveSheet();
$highestRow = $objWorksheet-getHighestRow();
$highestColumn = $objWorksheet-getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$excelData = array();
for ($row = 1; $row = $highestRow; $row++) {
for ($col = 0; $col $highestColumnIndex; $col++) {
$excelData[$row][] =(string)$objWorksheet-getCellByColumnAndRow($col, $row)-getValue();
}
}
return $excelData;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
如右图这里写图片描述
现在来说Excel,表格的结构样式和MySQL样式要类似,表格样式如下(本人对Excel使用只是一般,所以如果有Excel大神做的报表,不知后果如何).
这里写图片描述
前端页面相关代码:
div
form method="post" action="{:U('Index/upload')}" enctype="multipart/form-data"
font导入Excel数据:/font
label for="file_stu"上传/label
input name="file_stu" type="file" id="file_stu" /
h3温馨提示:/h3
p请确认您的Excel表格类型是xls的,以免出现兼容问题./p
inputtypeinputtype="submit" class="sure" value="导入" /
/form
/div
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
最后,控制器部分使用了Thinkphp自带的上传类,使用unlink()函数是为了删除上传的excel表格,以免文件夹存入过多文件,调试代码时可先注释掉.或者不写也行,把删除文件的工作交给你们的运维.代码中foreach循环部分$v[]里的0, 1,2可以改动以下看看与Excel表格里的内容是什么关系.可以把数组打印出来看一看,你就很清楚了
相关代码:
public function upload(){
import('ORG.Util.ExcelToArrary');//导入excelToArray类
if (! empty ( $_FILES ['file_stu'] ['name'] )){
import('ORG.Net.UploadFile');
$upload = new UploadFile();// 实例化上传类
$upload-maxSize = 3145728 ;// 设置附件上传大小
$upload-allowExts = array('xls', 'xlsx');// 设置附件上传类型
$upload-savePath = './Uploads/';// 设置附件上传目录
if(!$upload-upload()) {// 上传错误提示错误信息
$this-error($upload-getErrorMsg());
}else{// 上传成功 获取上传文件信息
$info = $upload-getUploadFileInfo();
}
}else{
$this-error('(⊙o⊙)~没传数据就导入?!你在逗我?!');
}
//dump($info);die;
$ExcelToArrary=new ExcelToArrary();//实例化
$res=$ExcelToArrary-read($info[0]['savepath'].$info[0]['savename'],"UTF-8",$info[0]['extension']);//传参,判断office2007还是office2003
$res = array_slice($res,1); //为了去掉Excel里的表头,也就是$res数组里的$res[0];
//dump($res);
foreach ( $res as $k = $v ){ //循环excel表
$data[$k]['mobile'] = $v [0];//创建二维数组
$data[$k]['name'] = $v [1];
$data[$k]['duty'] = $v [2];
}
//dump($data);die;
$result=M('appkey')-addAll($data);
if(!$result){
$this-error('导入数据库失败');
exit();
}else{
$filename = './Uploads/'.$info[0]['savename'];//上传文件绝对路径,unlink()删除文件函数
if (unlink($filename)) {
$this-success ( '导入成功' );
}else{
$this-error('缓存删除失败');
}
}
}
thinkphp中phpexcel怎么使用
首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把classes解压到你项目的一个目录中,重名名为phpexcel,开始喽,(代码都摘自自带实例)
?php
require_once './phpexcel/PHPExcel.php';
// 首先创建一个新的对象 PHPExcel object
$objPHPExcel = new PHPExcel();
// 设置文件的一些属性,在xls文件——属性——详细信息里可以看到这些值,xml表格里是没有这些值的
$objPHPExcel
-getProperties() //获得文件属性对象,给下文提供设置资源
-setCreator( "Maarten Balliauw") //设置文件的创建者
-setLastModifiedBy( "Maarten Balliauw") //设置最后修改者
-setTitle( "Office 2007 XLSX Test Document" ) //设置标题
-setSubject( "Office 2007 XLSX Test Document" ) //设置主题
-setDescription( "Test document for Office 2007 XLSX, generated using PHP classes.") //设置备注
-setKeywords( "office 2007 openxml php") //设置标记
-setCategory( "Test result file"); //设置类别
// 位置aaa *为下文代码位置提供锚
// 给表格添加数据
$objPHPExcel-setActiveSheetIndex(0) //设置第一个内置表(一个xls文件里可以有多个表)为活动的
-setCellValue( 'A1', 'Hello' ) //给表的单元格设置数据
-setCellValue( 'B2', 'world!' ) //数据格式可以为字符串
-setCellValue( 'C1', 12) //数字型
-setCellValue( 'D2', 12) //
-setCellValue( 'D3', true ) //布尔型
-setCellValue( 'D4', '=SUM(C1:D2)' );//公式
//得到当前活动的表,注意下文教程中会经常用到$objActSheet
$objActSheet = $objPHPExcel-getActiveSheet();
// 位置bbb *为下文代码位置提供锚
// 给当前活动的表设置名称
$objActSheet-setTitle('Simple2222');