用 PHP 处理 Excel
以下是关于如何使用PHPExcel的备忘录。
填充
-
- PHPExcelの新バージョンとしてPhpSpreadsheetが出ているようです。
-
- PhpSpreadsheetでもメモリの問題はあるようで、メモリ消費の少ないPHP_XLSXWriterというのもあるみたいです。
-
- php-excel-writer-performance-comparison
性能ならLibXL PHP LICENSE
安装
composer require phpoffice/phpexcel
基本使用示例
以下的列和行指定方式似乎比指定类似B5等的单元格位置的方法更方便。
// Set cell B5 with a string value
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, 5, 'PHPExcel');
内存设置
使用PHPExcel时,由于其占用大量内存,建议事先进行以下设置。
// ファイルキャッシュに変更(遅くなるがメモリを大幅に減少)
PHPExcel_Settings::setCacheStorageMethod(PHPExcel_CachedObjectStorageFactory::cache_to_discISAM, ['dir' => '/tmp']);
总结
// Excel作成
PHPExcel_Settings::setCacheStorageMethod(
PHPExcel_CachedObjectStorageFactory::cache_to_discISAM,
['dir' => '/tmp']
);
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objSheet = $objPHPExcel->getActiveSheet();
$xlsx_data = [
['A1', 'B1', 'C1'],
['A2', 'B2', 'C1'],
];
foreach ($xlsx_data as $row_index => $row_data)
{
foreach ($row_data as $column_index => $column_data)
{
$objSheet->setCellValueByColumnAndRow($column_index, $row_index + 1, $column_data);
}
}
$current_datetime = new DateTimeImmutable(date('Y-m-d H:i:s'));
$file_name = 'test_' . $current_datetime->format('YmdHis') . '.xlsx';
$file_path = '/home/public/app/tmp/' . $file_name;
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save($file_path);
请参阅或查阅中文母语的以下内容,并仅提供一个选项:
请提供一个原文以便翻译成中文。