1
Neyin var! PhpExcel ile uzun bir tabloyu xlsx'den csv'ye dönüştürüyorum. Her şey iyiydi, ama şimdi biraz şaşırdım çünkü son dosyamda 772,68'den 772.6799999999999'a bir değer değişti.PhpExcell benim dönüştürülmüş dosyamdaki bir değeri değiştiriyor
Raporlama için CSV dosyalarını kullanıyorum ve bu değer çok uzun ve (uzaktan) yorumlayıcı bunu anlayamıyor.
Ne olduğunu anlayamıyorum.
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);
}
Teşekkürler. Bir diğer çözüm bulmak: bu benim için çalıştı edilir: \t $ objPHPExcel-> getActiveSheet() -> getStyle (.. 'AO2: AO' $ max '') -> getNumberFormat() -> setFormatCode (PHPExcel_Style_NumberFormat :: FORMAT_NUMBER_00); –
Bir sayı biçimi maskesinin uygulandığından emin olmanız sorunu çözecektir, ister orijinal dosyadan maske olsun, isterse de kaydetmeden önce kendinizi uyguladığınızdan –