PhpExcel 更改我转换文件中的一个值
PhpExcell changes a value in my converted file
什么鬼!我使用 PhpExcel 将长 table 从 xlsx 转换为 csv。一切都很好,但现在,我有点疑惑,因为我上一个文件中的值已从 772,68 更改为 772.6799999999999.
我使用 CSV 文件进行报告,这个值太长,(远程)解释器无法理解。
我不明白发生了什么。
这是来源:
function convertXLStoCSV($infile,$outfile) {
$fileType = PHPExcel_IOFactory::identify($infile);
$objReader = PHPExcel_IOFactory::createReader($fileType);
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($infile);
$max = $objPHPExcel->setActiveSheetIndex(0)->getHighestRow();
$objPHPExcel->getActiveSheet()->getStyle('B2:B'.$max.'')->getNumberFormat()->setFormatCode('YYYY.MM.DD');
$objPHPExcel->getActiveSheet()->getStyle('AP2:AP'.$max.'')->getNumberFormat()->setFormatCode('YYYY.MM.DD');
$objPHPExcel->getActiveSheet()->getStyle('AQ2:AQ'.$max.'')->getNumberFormat()->setFormatCode('YYYY.MM.DD');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
$objWriter->setDelimiter(';');
$objWriter->save($outfile);
}
PHPExcel 没有更改任何值。您正在加载的文件中存储的值是一个浮点值 772.6799999999999,您可能在原始文件中对其设置了数字格式掩码以仅将其显示为 2dp,但由于您没有加载数字格式掩码(因为你正在使用 $objReader->setReadDataOnly(true);
) 那么当你保存为 csv 时就不能应用屏蔽。
什么鬼!我使用 PhpExcel 将长 table 从 xlsx 转换为 csv。一切都很好,但现在,我有点疑惑,因为我上一个文件中的值已从 772,68 更改为 772.6799999999999.
我使用 CSV 文件进行报告,这个值太长,(远程)解释器无法理解。
我不明白发生了什么。
这是来源:
function convertXLStoCSV($infile,$outfile) {
$fileType = PHPExcel_IOFactory::identify($infile);
$objReader = PHPExcel_IOFactory::createReader($fileType);
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($infile);
$max = $objPHPExcel->setActiveSheetIndex(0)->getHighestRow();
$objPHPExcel->getActiveSheet()->getStyle('B2:B'.$max.'')->getNumberFormat()->setFormatCode('YYYY.MM.DD');
$objPHPExcel->getActiveSheet()->getStyle('AP2:AP'.$max.'')->getNumberFormat()->setFormatCode('YYYY.MM.DD');
$objPHPExcel->getActiveSheet()->getStyle('AQ2:AQ'.$max.'')->getNumberFormat()->setFormatCode('YYYY.MM.DD');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
$objWriter->setDelimiter(';');
$objWriter->save($outfile);
}
PHPExcel 没有更改任何值。您正在加载的文件中存储的值是一个浮点值 772.6799999999999,您可能在原始文件中对其设置了数字格式掩码以仅将其显示为 2dp,但由于您没有加载数字格式掩码(因为你正在使用 $objReader->setReadDataOnly(true);
) 那么当你保存为 csv 时就不能应用屏蔽。