使用PHPexcel以便宜的方式查找最高的非空列/行(在Google表格导出中)

时间:2015-11-10 14:49:28

标签: php google-sheets phpexcel

在PHPExcel中导入Google表格导出的.xlsx文件时,PHPexcel方法$worksheet->getHighestDataColumn()$worksheet->getHighestDataRow()都返回Google文档中的最大设置,包括完全空单元格,通常为26x1000。

据我所知,在Google表格/ Excel中打开它们时,单元格与常规空Excel单元格一样空,即没有空格。

也许Google表格采用了稍微不同的方法来预留"列和行(而不是Excel)(即时生成它们)。

我想获得最高的非空行,以便在循环行时不会不必要地分配大量内存。尊重我使用的格式,我可以在空行中保存一些评估,但最后,我被迫简单地遍历所有行并检查所有单元格是否为空。

1 个答案:

答案 0 :(得分:0)

如果您愿意在Google Apps脚本中创建自定义函数,请查看此答案。在导出之前使用此选项,这样您就可以知道有多少行进来。它将查找单列的最后一行。但是,由于它是基于速度的,因此您可能会发现它比其他方法更快地遍历每列。

对于您的脚本,在遍历myLastRow()的结果的forEach循环上尝试Math.max:

Determining the last row in a single column

我注意到您没有指定在列结束之前是否有空单元格。上面的链接确实要求所有单元格都不为空(以Google表格的形式)。