3

我知道这不是询问这个具体模糊问题的正确地方,但也许有人足够了解这个库来启发我。事情是这样的:

我正在使用 PHPExcel 在现有 Excel 文件上编写 Excel5。我需要将该 Excel 上传到 Zoom 网站,以便它可以为我提供跟踪号列表。但是,由于某种原因,他们用于读取上传的 Excel 文件的库无法读取 PHPExcel 编写的行,到目前为止我发现的唯一解决方案是使用 MS Excel 手动将动态生成的 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 上手动编写的其他文件。

我可以尝试的任何线索、想法或建议将不胜感激。

4

1 回答 1

2

PHPExcel 的主要开发人员正在研究这个问题(以及其他问题),介于试图找到一份新的日常工作和拥有生活之间的某个地方。我不熟悉缩放网站或他们使用的软件。Excel、OOCalc 和 Gnumeric 可以毫无错误地读取 PHPExcel BIFF8 文件……但我想到了几个问题。

  • 什么版本的PHPExcel?
  • 是否有任何数据包含 UTF-8 字符?
  • 模板工作表中有公式吗?
  • 如果是这样,它们是什么?
于 2010-06-29T19:50:53.833 回答