首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电子表格::ParseExcel row_range与gnumeric不同

电子表格::ParseExcel row_range与gnumeric不同
EN

Stack Overflow用户
提问于 2013-05-30 22:06:58
回答 2查看 707关注 0票数 1

我很难让Spreadsheet::ParseExcel解析gnumeric生成的.xls电子表格,我认为问题在于gnumeric。当只使用285行时,ParseExcel的row_range()方法将返回(0,500)。

在用Perl脚本保存和处理A1文件之前,我尝试选择单元格I285,并选择文件>打印区域>设置打印区域,没有效果。

该文件实际上包含两个工作表。一个计算正确的行数,另一个没有。我创建了两个工作表,但不知道我可能会做什么不同的工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-30 22:50:16

当只使用285行时,ParseExcel的row_range()方法将返回(0,500)。

电子表格::ParseExcel从存储最大、最小行和列值的Excel文件中的二进制记录中读取row_range()数据。它不会迭代工作表来计算这些值。

因此,如果row_range()将(0,500)报告为正在使用的行范围,那么这些是存储在该记录中的值。

差异的来源可能是包含格式但没有数据的行造成的。Excel区分“空”单元格和“空白”单元格。“空”单元格是不包含数据的单元格,而“空白”单元格是不包含数据但包含格式的单元格。Excel存储“空白”单元格,但忽略“空”单元格。

在用Perl脚本保存和处理A1文件之前,我尝试选择单元格I285,并选择.xls >打印区域>设置打印区域,没有效果。

打印区域对row_range()报告的范围没有影响。

如果您确实希望将文件减少到285个包含行的数据,那么从286-501中选择行,删除它们,然后保存文件。

或者,设置程序以忽略只包含空数据的单元格的行。

票数 1
EN

Stack Overflow用户

发布于 2013-05-30 22:41:46

我怀疑这是在用不可打印的字符来计数行,但除非您发布代码,否则我无法确定地说。

如果是不可打印的字符,请尝试在引起问题的任何循环中插入这个坏男孩:

代码语言:javascript
复制
next unless $cell;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16846622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档