无法通过网络导入 Excel 文件



我是使用 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 发送。

此外,您还不清楚如何处理服务器端发送的文件。

最新更新