【发布时间】:2012-06-21 17:06:28
【问题描述】:
我有一张 Excel 表格,需要清空其中的一些单元格
到目前为止,它是这样的:
我打开工作表,检查 M 列中的单元格是否为空。 我将这些单元格添加到我的数组错误中 然后我想让所有这些单元格变黑并保存文件(这一步不起作用),因为该文件需要作为另一个程序的输入/ 谢谢!
$infile = $ARGV[0];
$columns = ReadData($infile) or die "cannot open excel table\n\n";
print "xls sheet contains $columns->[1]{maxrow} rows\n";
my $xlsstartrow;
if ( getExcel( A . 1 ) ne "text" ) {
$xlsstartrow = 2;
}
else
{
$xlsstartrow = 4;
}
check_templates();
print "done";
sub check_templates {
for ( $row = $xlsstartrow ; $row < ( $columns->[1]{maxrow} + 1 ) ; $row++ ) {
if (getExcel(M . $row) ne "" ){
$cell = "M" . $row ;
push(@mistakes,$cell);
}
}
rewritesheet(@mistakes);
}
sub rewritesheet {
my $FileName = $infile;
my $parser = Spreadsheet::ParseExcel::SaveParser->new();
my $template = $parser->Parse($FileName);
my $worksheet = $template->worksheet(0);
my $row = 0;
my $col = 0;
# Get the format from the cell
my $format = $template->{Worksheet}[$sheet]
->{Cells}[$row][$col]
->{FormatNo};
foreach (@mistakes){
$worksheet->AddCell( $_, "" );
}
$template->SaveAs($infile2);`
【问题讨论】:
-
您使用哪些模块来处理 Excel 文件?
-
这看起来像Spreadsheet::Read。请发布完整的脚本并以
use strict;和use warnings;开头。然后 - 找出现在将出现的许多错误消息和警告。如果您无法弄清楚您的问题,请尝试将您的程序减少到几行(仅执行您要求的操作)。