PHPExcel:保存文件后,返回损坏的工作表


PHPExcel: After saving file, returning broken worksheet

我对PHPExcel有问题。我已经读过这个问题:

如何在symfony2 中使用PHPExcel修改excel文件

因为一开始那就是我的问题。但我已经做了Abhishek Jaiswal说的一切。。。我又遇到一个问题。也许我做了坏事,因为这个答案很合理。

好的,关于代码:

$excelReader = 'PHPExcel_IOFactory::createReader('Excel2007');
$excelObj = $excelReader->load($path.$filename);
for ($i = 3; $i <= 30; $i++) {
        $excelObj->setActiveSheetIndex(0)->setCellValue('O'.$i, 'tytyty')->
        setCellValue('P'.$i, $company->getFullName())->
        setCellValue('Q'.$i, $company->getAddress())->
        setCellValue('S'.$i, $company->getAddressAddition())->
        setCellValue('T'.$i, $company->getPostalCode())->
        setCellValue('U'.$i, $company->getCity())->
        setCellValue('V'.$i, $entity->__toString())->
        setCellValue('W'.$i, $entity->getPhone())->
        setCellValue('X'.$i, $entity->getInternalPhoneNumber())->
        setCellValue('Y'.$i, $entity->getEmail());
    }
$excelObj->setActiveSheetIndex(0);
$excelWriter = 'PHPExcel_IOFactory::createWriter($excelObj, 'Excel2007');
$excelWriter->save($path . $new_filename);

当我查看保存的文件时,在编辑过的工作表上,我得到了从31行开始的工作表(这是第一个未编辑的行,也是第一个没有格式化的工作表)。事实上,它看起来也坏了,因为当我在LibreOffice中打开它时,我看不到行,只看到右边的数字。

我很确定,我加载的xlsx很好,因为我试图从中转储数据,我得到了我所期望的。

好的。。。我找到了。我重复了上面的测试,但有一点不同。我用了Microsoft Office来创建文件。看来,自由办公室在2007/2010年的格式上存在一些问题。

使用MO文件一切都很好。