我是使用 perl-cgi 进行 html 编程的新手,我想通过网页导入一个 excel 文件。我正在使用 perl 的 Spreadsheet::P arseExcel 模块,代码是:
if($fileName) {
my $parser = Spreadsheet::ParseExcel->new();
my $workbook = $parser->parse($fileName);
if ( !defined $workbook ) {
die $parser->error(), ".n";
}
for my $worksheet ( $workbook->worksheets() ) {
my ( $row_min, $row_max ) = $worksheet->row_range();
my ( $col_min, $col_max ) = $worksheet->col_range();
for my $row ( $row_min .. $row_max ) {
for my $col ( $col_min .. $col_max ) {
my $cell = $worksheet->get_cell( $row, $col );
next unless $cell;
# print "Row, Col = ($row, $col)n";
print $cell->value() ,"|" ;
#print "Unformatted = ", $cell->unformatted(), "n";
}
print "n";
}
}
}
这里的文件名变量是我从 HTML 表单输入的 excel 文件的名称,其代码为:
<form id='form1' method='GET' action='#'>
<input id='fileSelect' name='file' type='file' accept='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel'>
<input type=submit value='submit'>
</form>
我已经在 linux 中的目录/a/b/c 中编写了这个服务器端代码,在该目录中,每当我加载文件 xyz 时.xls我都会通过网络将文件复制到 xyz.xls.So,我获得结果,如果我加载另一个文件说 pqr.xls它不在目录/a/b/c 中, 我找不到此错误文件。但是我想从使用此网页的用户导入任何文件。
我被困在这里,请提出一些建议。
提前致谢
你的perl代码看起来不错。但是您的表格应该是
method="post" enctype="multipart/form-data"
除非您在客户端使用 JavaScript 创建一个 FromData 对象并通过 ajax 发送。
此外,您还不清楚如何处理服务器端发送的文件。