【发布时间】:2023-03-02 22:19:02
【问题描述】:
我正在使用php Spreadsheet包来生成和下载csv文件,
它在数字前加上撇号。
public function downloadCsv()
{
$spreadsheet = new Spreadsheet();
$spreadsheet->getProperties()
->setCreator("ABC")
->setTitle("Test");
$spreadsheet->setActiveSheetIndex(0)
-> setCellValue('A1', '01/02/92')
->setCellValue('A2', '01/02/92')
->setCellValue('A3', '01/04/92');
$filename = 'hello world';
$spreadsheet->setActiveSheetIndex(0);
$spreadsheet->getActiveSheet()->setAutoFilter(
$spreadsheet->getActiveSheet()
->calculateWorksheetDimension()
);
header('Content-Type: application/ vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$filename.'.xlsx"');
header('Cache-Control: max-age=0');
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('php://output');
}
我得到的输出
'01/02/92
'01/02/92
'01/04/92
现在如何去掉数字前的撇号?? 谢谢
【问题讨论】:
-
单撇号是为了让 Excel 可以将其识别为文本。您应该指定列的类型(即日期)。
-
有人遇到了同样的问题 (stackoverflow.com/questions/35673245/…)。请注意,PHPExcel 是旧版本的 PHPSpreadsheet。我在导出 CSV 文件时遇到了同样的问题。显然,外壳格式不正确。我不得不把单引号放在一边。
标签: php codeigniter phpspreadsheet