PHPExcel(和其他)在读取xlsx时缺少单元格值

PHPExcel(和其他)在读取xlsx时缺少单元格值,excel,phpexcel,openxml,xlsx,Excel,Phpexcel,Openxml,Xlsx,我使用不同的PHPLIB从各种各样的文件类型中读取客户机订单。 现在我卡住了一点 我收到了xlsx文件(附件),它可能是由一些未知的软件生成的。 当我使用PHPExcel(1.8.0)读取它时,我只得到包含数字的单元格的值——乍一看 正如我们所知,xlsx是一些xml文件的归档容器。 当我深入研究这些xml时,我了解到,我只得到了工作表文件(在这个xlsx中为xl/worksheets/sheet1.xml)工作表->sheetData->行->c中描述的单元格的值,属性“t”设置为“n”。通常

我使用不同的PHPLIB从各种各样的文件类型中读取客户机订单。 现在我卡住了一点

我收到了xlsx文件(附件),它可能是由一些未知的软件生成的。 当我使用PHPExcel(1.8.0)读取它时,我只得到包含数字的单元格的值——乍一看

正如我们所知,xlsx是一些xml文件的归档容器。 当我深入研究这些xml时,我了解到,我只得到了工作表文件(在这个xlsx中为xl/worksheets/sheet1.xml)工作表->sheetData->行->c中描述的单元格的值,属性“t”设置为“n”。通常这意味着值就在这个文件中。标签“c”的属性“t”设置为“s”-值在SharedStrings.xml中描述。而PHPExcel没有得到它们

还是我做错了什么

下面是简单的代码:

$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$excel = $objReader->load($file);
$excel->setActiveSheetIndex(0);
$data = $excel->getActiveSheet()->toArray(null, true, true, true);

print_r($data);

首先尝试通过
getHighestRow()
获取highestRow,然后使用
rangeToArray('A1:'.$highestRow)
如下所示:

$workingSheet = $objPHPExcel->getActiveSheet();
$highestRow = $objPHPExcel->getActiveSheet()->getHighestRow();
$data = $workingSheet->rangeToArray('A1:Y'.$highestRow);

它将从Excel读取所有数据并存储到
$data

中,首先尝试通过
getHighestRow()
获取highestRow,然后使用
rangeToArray('A1:'.$highestRow)
如下所示:

$workingSheet = $objPHPExcel->getActiveSheet();
$highestRow = $objPHPExcel->getActiveSheet()->getHighestRow();
$data = $workingSheet->rangeToArray('A1:Y'.$highestRow);

它将从Excel读取所有数据并存储到
$data

我不知道该文件与PHPExcel完全能够读取的任何其他xlsx文件有什么不同,但一般来说,PHPExcel从共享字符串读取值应该没有问题。。。。这就是它的写作目的。。。。是否可以转发此文件的副本以查找不同之处,并可能阻止PHPExcel执行其专门写入doSorry的操作,我错过了您链接该文件的消息。。。。我会看一看的我知道Mark PHPExcel做得很好。但这一次我想这是一个软件的问题,它生成了这个精确的文件。在向客户提出索赔之前,我想知道我是否可以做些什么(向xlsx归档文件中添加一些内容或剥离一些内容)。只是让其他人理解——这不是PHPExcel的问题。其他LIB得到相同的结果。我正在努力解决确切的文件问题,也许我不是唯一一个面临这个问题的人,我可以确认这个特定的文件是有问题的
xlrd
(Python库)拒绝打开它。我不是Excel文件格式方面的专家,但回溯意味着有人试图使用超出范围的索引引用共享字符串表。我不知道该文件与PHPEXEL完全能够读取的任何其他xlsx文件有什么不同,但一般来说,从共享字符串读取值时PHPExcel应该没有问题。。。。这就是它的写作目的。。。。是否可以转发此文件的副本以查找不同之处,并可能阻止PHPExcel执行其专门写入doSorry的操作,我错过了您链接该文件的消息。。。。我会看一看的我知道Mark PHPExcel做得很好。但这一次我想这是一个软件的问题,它生成了这个精确的文件。在向客户提出索赔之前,我想知道我是否可以做些什么(向xlsx归档文件中添加一些内容或剥离一些内容)。只是让其他人理解——这不是PHPExcel的问题。其他LIB得到相同的结果。我正在努力解决确切的文件问题,也许我不是唯一一个面临这个问题的人,我可以确认这个特定的文件是有问题的
xlrd
(Python库)拒绝打开它。我不是Excel文件格式方面的专家,但回溯意味着有人试图使用超出范围的索引引用共享字符串表。这是一个基本的代码段-我使用它时没有运气,因为它会从第一个单元格不为空的所有行中读取所有数据,否则它将不会读取该行。这可能是您无法从该工作表中获取所有数据的原因。谢谢,但不是-所有单元格都充满了数据。这是一个基本的代码片段-我使用它时运气不好,因为它会从第一个单元格不为空的所有行中读取所有数据,否则它将不会读取该行。这可能是您无法从该表中获取所有数据的原因。谢谢,但不是所有单元格都充满了数据。