私は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をコピーした。私はウェブを通してファイルxyz.xlsをロードするときはいつでも、私は結果を得て、私は別のファイルをロードする場合pqrを言う。 / a / b / cディレクトリに配置されていないxls、私はこのエラーファイルが見つかりません。しかし、私はこのウェブページを使用しているユーザーから任意のファイルをインポートしたいです。
私はここで立ち往生しています、何か提案してください。
前もって感謝します
回答:
回答№1は0あなたのperlコードは問題ないようです。しかしあなたの形は
method="post" enctype="multipart/form-data"
クライアントサイドでjavascriptを使用してFromDataオブジェクトを作成し、それをajax経由で送信しない限り。
また、サーバー側で送信されたファイルをどのように処理するかもあまり明確ではありません。