【发布时间】:2011-07-14 21:04:53
【问题描述】:
我有一个 perl 脚本读取 Excel 文件并使用 perl 模块“Spreadsheet::ParseExcel::Simple; 我想要的是我的脚本只读取一个选项卡而不是读取电子表格上的所有选项卡。这里看起来喜欢脚本的部分。
# ### Use a Spreadsheet CPAN module for parsing Excel spreadsheet
require Spreadsheet::ParseExcel::Simple;
my $xls = Spreadsheet::ParseExcel::Simple->read('/opt/test.xls');
$Output_Circuit_file = "/opt/result.text";
############################################################################
$err_idx = 0;
$out_idx = 0;
@date_var = localtime;
$date = sprintf("%02d",($date_var[4] + 1)) . '/' . sprintf("%02d",$date_var[3]) . '/' . ($date_var[5] + 1900);
## #############
foreach my $sheet ($xls->sheets) {
while ($sheet->has_data) {
my @words = $sheet ->next_row;
$ctr++;
任何人都可以提供帮助,我可以在其中修改以阅读我的脚本只读选项卡“A”并忽略其他所有内容。
【问题讨论】:
-
“标签”是什么意思?工作表?如果是这样,请不要遍历所有这些,而是选择您感兴趣的一个
-
对不起,我的意思是工作表。我已经删除了 foreach my $sheet ($xls->sheets) { to -> @sheets = $xls->sheets; $sheet = $sheets[0];但现在剧本没有读。任何想法!再次感谢您的时间!
-
您是否使用“my”来声明变量?如果不是,它将在使用严格时失败。如果您需要更多,请发布您遇到的错误
-
我使用“我的”..奇怪的部分是当我运行脚本时没有产生错误,即使脚本运行它也只是空白。你同意 Keveman 代码吗?应该是其他原因导致的问题?
-
我认为有一个更深层次的问题,您可能希望放弃使用 Spreadsheet::ParseExcel::Simple,而直接使用 Spreadsheet::ParseExcel。当我查看 Spreadsheet::ParseExcel::Simple 的代码时,它依赖于未记录的内部属性。它们可能曾被支持一次,但 Spreadsheet::ParseExcel::Simple 上次更新是在五年前,但 Spreadsheet::ParseExcel 得到了积极维护。不同之处在于 MaxRow 属性,如果缺少该属性,则不会返回任何数据。 Spreadsheet::ParseExcel 并不复杂,它是我使用过的可靠的。
标签: perl perl-module xls