PHPExcel导出数据到带多个工作簿的Excel

新版本的phpoffice/phpspreadsheet没装上,没有zip扩展报错,Excel2007需要用到这个扩展:

composer require phpoffice/phpspreadsheet

先用老版本的装上。

composer require phpoffice/phpexcel

require '../vendor/autoload.php';

use PHPExcel;
use PHPExcel_IOFactory;
use PHPExcel_Worksheet;

// 测试数据
$list_data = [
[["title1"] => "t1", ["title2"] => "t2", ["title3"] => "t3"],
[["title1"] => "t4", ["title2"] => "t5", ["title3"] => "t6"]
];

// 创建PHPExcel对象
$objPHPExcel = new PHPExcel();
// 设置属性
$objPHPExcel->getProperties()->setCreator('作者');

// 设置第一个工作簿
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->SetCellValue('A1', '列标题1');
$objPHPExcel->getActiveSheet()->SetCellValue('B1', '列标题2');
$objPHPExcel->getActiveSheet()->SetCellValue('C1', '列标题3');
$objPHPExcel->getActiveSheet()->setTitle('工作簿标题');
$length = count($list_data1);
// 填入数据,用循环结构方法,下面还有更简洁的方法
for($i = 0; $i<$length; $i++) {
    $p = $i+2;
    $objPHPExcel->getActiveSheet()->SetCellValue('A'.$p, $list_data[$i]["title1"]);
    $objPHPExcel->getActiveSheet()->SetCellValue('B'.$p, $list_data[$i]["title2"]);
    $objPHPExcel->getActiveSheet()->SetCellValue('C'.$p, $list_data[$i]["title3"]);
}

// 再新加一个工作簿
$sheet = new PHPExcel_Worksheet($objPHPExcel, '工作簿2标题');
$sheet->SetCellValue('A1', '列标题1');
$sheet->SetCellValue('B1', '列标题2');
$sheet->SetCellValue('C1', '列标题3');

// 填入数据,用fromArray批量设置方法
$sheet->fromArray(
    $list_data, // 赋值的数组
    NULL, // 忽略的值,不会在excel中显示
    'A2' // 赋值的起始位置
);
$objPHPExcel->addSheet($sheet);

// 另外一种增加工作簿的方法
//创建一个新的工作簿(sheet)
$objPHPExcel->createSheet();
$objPHPExcel->setactivesheetindex(1);
//写入多行数据
foreach($mulit_arr as $k=>$v){
    $k = $k+1;
    $objPHPExcel->getactivesheet()->setcellvalue('A'.$k, $v["title1"]);
    $objPHPExcel->getactivesheet()->setcellvalue('B'.$k, $v["title2"]);
    $objPHPExcel->getactivesheet()->setcellvalue('C'.$k, $v["title3"]);
}

// excel写入对象
$excelWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');

$filename =  date("Y-m-d",strtotime("-1 day"));
// 可以直接下载,也可以保存到文件
// $excelWriter->save('php://output');
$excelWriter->save(__DIR__.$filename.'.xls');

// 关闭
$objPHPExcel->disconnectWorksheets();
unset($objPHPExcel);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值