如何使用PHP中的多个工作表生成Excel文档?

Cri*_*ian 25 php spreadsheet

我想从PHP生成一个MS Excel文件.我知道可以做这样的事情:

header ( "Content-type: application/vnd.ms-excel" );
header ( "Content-Disposition: attachment; filename=foo_bar.xls" );
Run Code Online (Sandbox Code Playgroud)

但它会生成一个只有一个Sheet的文件.我想要的是生成一个包含多个工作表的文件.我怎样才能做到这一点?也许有第三方图书馆,但我找不到太多.

Mar*_*ker 75

试着看看PHPExcel.这是一个使用两个工作表创建Excel文件的简单示例:

<?php
require_once 'PHPExcel.php';
require_once 'PHPExcel/IOFactory.php';

// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

// Create a first sheet, representing sales data
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Something');

// Rename sheet
$objPHPExcel->getActiveSheet()->setTitle('Name of Sheet 1');

// Create a new worksheet, after the default sheet
$objPHPExcel->createSheet();

// Add some data to the second sheet, resembling some different data types
$objPHPExcel->setActiveSheetIndex(1);
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'More data');

// Rename 2nd sheet
$objPHPExcel->getActiveSheet()->setTitle('Second sheet');

// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="name_of_file.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
Run Code Online (Sandbox Code Playgroud)