我输出到Excel文件的当前代码版本如下:
我有一个列名数组和一个包含所有数据的数组:
$objPHPExcel->getActiveSheet()->setTitle($titleArr[$i]);
$objPHPExcel->getActiveSheet()->fromArray($headersArr[$i], NULL, 'A1');
$objPHPExcel->getActiveSheet()->fromArray($dataArr[$i], NULL, 'A2');
我唯一要做的就是自动调整列
$objPHPExcel->getActiveSheet()
->getColumnDimension($col)
->setAutoSize(true);
有没有办法让工作表填充数组中的数据,并告诉excel某些列实际上是否采用特定格式?
以下内容在Excel中创建自定义字段,而不是日期字段。它排序但我必须手动告诉它将其视为一个数字。
$objPHPExcel->getActiveSheet()->getStyle($col . '2:' . $col. '500')->getNumberFormat()->setFormatCode('yyyy-mm-dd hh:mm:ss');
有没有办法让它像日期一样对待它,而不必手动编写每个单元格,如:
$objPHPExcel->getActiveSheet()->SetCellValueByColumnAndRow(3, $currentrow, PHPExcel_Shared_Date::PHPToExcel($timestamp));
$objPHPExcel->getActiveSheet()->getStyleByColumnAndRow(3, $currentrow)->getNumberFormat()->setFormatCode('dd/mm/yyyy');
答案 0 :(得分:0)
Excel中没有date field
这样的东西....日期只不过是带格式掩码的数字。
但您可以尝试使用单元格绑定器:只要在单元格中设置值,就会调用单元格绑定器(除非您将值设置为显式)。高级值绑定器作为PHPExcel的选项提供,可识别大多数日期和时间格式,并相应地自动转换和设置格式掩码。
答案 1 :(得分:0)
如果整个列仅填充了日期值,则可以使用getStyle()
代替getStyleByColumnAndRow()
来获取整个列。像这样:
$objPHPExcel->getActiveSheet()->getStyle('C:C')->getNumberFormat()->setFormatCode('dd/mm/yyyy');
格式为A:A
的坐标转换为A1:A1048576
。同样适用于1:1
,转换为A1:XFD1
。有关不同的转化,请参阅setSelectedCells()
in Worksheet.php。
答案 2 :(得分:0)
我在$objPHPExcel->getActiveSheet()->fromArray
之后设置日期时间,如下所示:
while ($row = mysql_fetch_assoc($result)) {
$objPHPExcel->getActiveSheet()->fromArray($row, null, "A".$red);
// Again set row values
$dateValuerr = PHPExcel_Shared_Date::PHPToExcel(strtotime($row[NasDatumPrijemaPredmeti]));
$objPHPExcel->getActiveSheet()->setCellValue("D".$red."", $dateValuerr);
$dateValuerr = PHPExcel_Shared_Date::PHPToExcel(strtotime($row[NjihovDatumPrijemaPredmeti]));
$objPHPExcel->getActiveSheet()->setCellValue("E".$red."", $dateValuerr);
$objPHPExcel->getActiveSheet()->getStyle("A".$red.":AF".$red)->applyFromArray($table_style);
$objPHPExcel->getActiveSheet()->getStyle("A".$red.":AF".$red)->getFont()->setBold(true);
$red++;
};
然后设置列
$objPHPExcel->getActiveSheet()->getStyle('D2:E1000')->getNumberFormat()->setFormatCode(exportdatum);
My date is : define('exportdatum', 'dd.mm.yyyy'); // Date
这是MySql DB中的日期
MySql Date : 2015-05-01
But I convert in query to
DATE_FORMAT(predmeti.NasDatumPrijemaPredmeti, '%d.%m.%Y') AS NasDatumPrijemaPredmeti