无法通过Web导入Excel文件

时间:2017-06-23 05:01:47

标签: html perl

我是一个使用perl-cgi的html编程的新手,我想通过网页导入一个excel文件。我正在使用perl的Spreadsheet :: ParseExcel模块,代码是:

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";
        }
    }


}

这里fileName变量是我从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.So每当我通过web加载文件xyz.xls时,我获得结果,如果我加载另一个文件说pqr.xls不在目录/ a / b / c,我有这个错误文件找不到。但我想从使用此网页的用户导入任何文件

我被困在这里,请提出建议。

提前致谢

1 个答案:

答案 0 :(得分:0)

您的perl代码看起来不错。但你的表格应该是

method="post" enctype="multipart/form-data"

除非你在客户端使用javascript创建一个FromData对象并通过ajax发送它。

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