相关文章推荐
气势凌人的弓箭  ·  [Qt-ColorEditor] ...·  2 月前    · 
瘦瘦的小熊猫  ·  Three.js ...·  2 月前    · 
高大的包子  ·  OpenCV(cv::medianBlur( ...·  5 月前    · 
玩手机的饭卡  ·  javascript - ...·  1 年前    · 


新版本的​ ​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);