PHPExcel setReadDataOnly 不适用于 Excel 2007
Posted
技术标签:
【中文标题】PHPExcel setReadDataOnly 不适用于 Excel 2007【英文标题】:PHPExcel setReadDataOnly is not working with Excel 2007 【发布时间】:2012-01-24 14:57:47 【问题描述】:我正在使用 phpexcel 类读取 .xls、.ods 和 .xlsx 文件,我需要忽略空白单元格,即使这些单元格有格式。
我使用 setReadDataOnly 方法来获取它,它适用于 .xls 和 .ods 文件,但不适用于 .xlxs 文件。
【问题讨论】:
【参考方案1】:“不工作”到底是什么意思。
如果单元格实际存在于电子表格文件中,则读取时的 setReadDataOnly(TRUE) 选项不会阻止读取空白单元格,它只是意味着它不会读取任何单元格的格式...空白单元格仍然是空白单元格,除非您创建读取过滤器以防止读取某些单元格,否则它们仍将被加载。
xls、ods 和 xlsx 的这种行为是相同的。
PHPExcel 中提供的唯一“跳过”空白单元格的工具是在单元格迭代器中。
【讨论】:
谢谢马克,关于 setReadDataOnly 的一切都清楚了,但是,我的问题是我有 10 行数据(例如),在第 15 行有一个日期格式的空单元格,那么,phpexcel 正在占用xls 文件的前 10 行,ods 文件的前 10 行,但 xlsx 文件的前 15 行,我需要忽略所有单元格为空的行(高于 10 行) 如果您知道在加载工作簿之前只有 10 行数据,那么您可以设置读取过滤器以仅加载这 10 行。 “用户文档 - 阅读”文档的第 4.3 节展示了如何应用阅读过滤器。 嗯,不,10 行是一个例子我不知道我的文件会有多少行,我需要忽略所有单元格为空的所有行,即使这些单元格有格式。 唯一的方法是用你自己的逻辑处理它们......如果单元格包含数据(甚至是空字符串),它存在于文件中,因此将由 PHPExcel 加载。另一种方法是在保存文件之前删除 MS EXcel 本身中的空行。要在 MS Excel 中查找最后一行,请在该工作表上按 Ctrl-End 可惜不可能,我想让它简单易用,谢谢!我将向最终用户解释。再次感谢。问候。以上是关于PHPExcel setReadDataOnly 不适用于 Excel 2007的主要内容,如果未能解决你的问题,请参考以下文章