在PHPExcel中导入Google表格导出的.xlsx文件时,PHPexcel方法$worksheet->getHighestDataColumn()
和$worksheet->getHighestDataRow()
都返回Google Docs中的最大设置,包括完全空单元格,通常为26x1000。
在Google表格/ Excel中打开它们时,单元格与常规空Excel单元格一样空,即没有空格。
也许谷歌表格使用略微不同的方法来“保留”列和行而不是Excel(即时生成它们)。
我想获得最高的非空行,以便在循环遍历行时不会不必要地分配大量内存。尊重我正在使用的格式,我可以在空行中保存一些评估,但最后,我被迫简单地遍历所有行并检查所有单元格是否为空。
如果您愿意在Google Apps脚本中创建自定义功能,请查看此答案。在导出之前使用它,以便知道有多少行。它找到单个列的最后一行。但是,由于它基于速度,您可能会发现它比其他方法更快地遍历每个列。
对于您的脚本,在遍历myLastRow()结果的forEach循环上尝试Math.max:
Determining the last row in a single column
我注意到你没有指定你的列在它们结束之前是否有空单元格。上述链接确实要求所有单元格都为空(在Google表单中)。