在使用PHPElectron 表格和PHP8.2中的CodeIgniter 3导出Excel时,我遇到了一个问题.错误消息如下图所示:
以下是我正在使用的代码片段:
$fileName = 'activityReport.xlsx';
$this->load->library('ciSpreadsheet');
$spreadsheet = new Spreadsheet();
$spreadsheet->getProperties()->setCreator("CalibOn")
->setLastModifiedBy("CalibOn")
->setTitle("Activity Report")
->setSubject("Activity Report")
->setDescription("Activity Report")
->setKeywords("")
->setCategory("Report");
$spreadsheet->setActiveSheetIndex(0);
$col_array = array('Activity Date', 'Activity Time', 'Account Name', 'Activity Type', 'Contacted', 'Outcome', 'Description', 'Activity By', 'Created Date', 'Created Time');
$col_array_key = array('ActivityDate', 'ActivityTime', 'AccountName', 'ActivityType', 'Contacted', 'Outcome', 'Description', 'ActivityBy', 'CreatedDate', 'CreatedTime');
$col_count = 1;
$row_count = 1;
$sheet = $spreadsheet->getActiveSheet();
foreach ($col_array as $value) {
$sheet->setCellValue($this->getNameFromNumber($col_count) . $row_count, $value);
$col_count++;
}
$row_count++;
foreach ($report_array as $key => $value) {
$col_count = 1;
foreach ($col_array_key as $key_c => $value_col) {
$sheet->setCellValue($this->getNameFromNumber($col_count) . $row_count, $value->$value_col);
$col_count++;
}
$row_count++;
}
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="' . $fileName . '"');
header('Cache-Control: max-age=0');
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save("php://output");
exit;
从数据库获取的reportData变量遵循以下示例格式:
Array(
[0] => Array(
[ActivityDate] => 2022-06-28,
[ActivityTime] => 14:00:00,
[AccountName] => "Name",
[ActivityType] => "Visit",
[Description] => "desc",
[Contacted] => "completed by",
[Outcome] => ,
[ActivityBy] => "generated by",
[CreatedDate] => 2022-07-08,
[CreatedTime] => 17:13:59
)
);
我正在寻求帮助以解决错误并成功导出Excel文件.如有任何关于解决问题的指导或建议,我们将不胜感激.