Я знаю, что это не подходящее место, чтобы спрашивать об этой конкретной неопределенной проблеме, но, возможно, кто-то знает эту библиотеку достаточно хорошо, чтобы просветить меня. Вот вещь:
Я пишу Excel5 поверх существующего файла Excel с помощью PHPExcel. Мне нужно загрузить этот Excel на сайт Zoom, чтобы он мог предоставить мне список номеров отслеживания. Однако по какой-то причине библиотека, которую они используют для чтения загруженных файлов Excel, не может прочитать строки, написанные PHPExcel, и единственное решение, которое я нашел до сих пор, - это вручную скопировать содержимое моего динамически сгенерированного Excel в другой документ с использованием MS Excel. 2007
Другими словами, веб-сайт Zoom может читать строки, написанные в Excel, но не строки, написанные PHPExcel. В моем файле только один лист, и я могу без проблем открыть его в Excel 2007.
Даже если я вручную добавлю несколько строк в шаблон, а затем добавлю больше строк с помощью PHPExcel, Zoom будет читать строки, написанные мной вручную, но не строки, написанные PHPExcel.
Вот как я это делаю:
// Starting with the PHPExcel library
$this->load->library('PHPExcel');
$this->load->library('PHPExcel/IOFactory');
$template_file = 'zoom_tracking_template.xls';
$i = 3;
$objReader = IOFactory::createReader('Excel5');
$objPHPExcel = $objReader->load($template_file);
$objPHPExcel->setActiveSheetIndex(0);
// Fetching ML payments
foreach($payments as $row)
{
$objPHPExcel->getActiveSheet()->setCellValue('A'.$i, 'VANESSA NEISZER');
$objPHPExcel->getActiveSheet()->setCellValue('B'.$i, '02127616116');
$objPHPExcel->getActiveSheet()->setCellValue('C'.$i, '1ER PISO MINITIENDAS 199 BLVD SABANA GRANDE, CRUCE C / CALLE NEGRIN');
$objPHPExcel->getActiveSheet()->setCellValue('D'.$i, $row->mailing_city);
$objPHPExcel->getActiveSheet()->setCellValue('E'.$i, $row->mailing_name);
$objPHPExcel->getActiveSheet()->setCellValue('F'.$i, $row->mailing_name);
$objPHPExcel->getActiveSheet()->setCellValue('G'.$i, $row->mailing_personal_id);
$objPHPExcel->getActiveSheet()->setCellValue('H'.$i, $row->mailing_phone);
$objPHPExcel->getActiveSheet()->setCellValue('I'.$i, $row->mailing_address1.' '.$row->mailing_address2);
$objPHPExcel->getActiveSheet()->setCellValue('J'.$i, $row->nickname);
$objPHPExcel->getActiveSheet()->setCellValue('K'.$i, '1');
$objPHPExcel->getActiveSheet()->setCellValue('L'.$i, '0.3');
$objPHPExcel->getActiveSheet()->setCellValue('M'.$i, 'M');
$objPHPExcel->getActiveSheet()->setCellValue('N'.$i, 'PRODUCTO');
$objPHPExcel->getActiveSheet()->setCellValue('O'.$i, '0');
$i++;
}
$objPHPExcel->setActiveSheetIndex(0);
$objWriter = IOFactory::createWriter($objPHPExcel, 'Excel5');
// Sending headers to force the user to download the file
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Envios'.date('dMy').'.xls"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');
Я понятия не имею, какую библиотеку PHP они используют для чтения файлов Excel, и я уверен, что они не скажут мне, если я их спрошу. Я знаю, что они используют PHP, и их библиотека читает только файлы Excel 2003, однако я не знаю, почему они не могут читать мои файлы, но они могут читать другие файлы, написанные вручную в MS Excel.
Буду очень признателен за любые подсказки, идеи или предложения, которые я смогу попробовать.