このコードは、.xlsmファイルからデータを読み込みます。このデータは、セル(0,0)のようなセルごとに読み込まれます。行全体のデータを読み込みます。行ごとに.xlsmファイルを読み込み、すべてではなく指定されたワークシートのみを読み込みます。perlの行ごとに.xlsmファイルを読み込む方法
#!/usr/bin/env perl
use strict;
use warnings;
use Spreadsheet::Reader::ExcelXML qw(:just_the_data);
my $workbook = Spreadsheet::Reader::ExcelXML->new(file => 'filename.xlsm'
);
if (!$workbook->file_opened) {
die $workbook->error(), "\n";
}
for my $worksheet ($workbook->worksheets) {
print "Reading worksheet named: " . $worksheet->get_name . "\n";
while(1){
my $cell = $worksheet->get_next_value;
print "Cell is: $cell\n";
last if $cell eq 'EOF';
}
}
出力:
# SYNOPSIS Screen Output
# 01: Row, Col = (0, 0)
# 02: Value = Category
# 03: Unformatted = Category
# 04:
# 05: Row, Col = (0, 1)
# 06: Value = Total
# 07: Unformatted = Total
# 08:
# 09: Row, Col = (0, 2)
# 10: Value = Date
# 11: Unformatted = Date
# 12:
# 13: Row, Col = (1, 0)
# 14: Value = Red
# 16: Unformatted = Red
# 17:
# 18: Row, Col = (1, 1)
# 19: Value = 5
# 20: Unformatted = 5
# 21:
# 22: Row, Col = (1, 2)
# 23: Value = 2017-2-14 #(shows as 2/14/2017 in the sheet)
# 24: Unformatted = 41318
# 25:
# More intermediate rows ...
# 82:
# 83: Row, Col = (6, 2)
# 84: Value = 2016-2-6 #(shows as 2/6/2016 in the sheet)
# 85: Unformatted = 40944
"行"にさまざまなデータ型の潜在的に多くのセルが含まれている場合、シートを1行ずつ読み込むことは何を意味しますか?あなたは「ライン」のために正確に何を受け取りたいですか? –
各行のデータを一度に – Anand
なぜそれをしたいですか?あなたはそれがより速くなると思いますか?少ないコード?より読みやすい? – simbabque