为什么在Perl中读取Excel 2007(.xlsx)文件时会截断值?

时间:2010-06-18 10:57:45

标签: perl excel

我正在使用Spreadsheet::ParseExcel阅读.xls文件,并且能够按原样获取数据。

但是,在使用Spreadsheet::XLSX阅读.xlsx文件时,读取的值会被截断。

例如,2.4578.xls文件中的.xlsx分别被视为2.45782.45

请提示为什么.xlsx文件数据已损坏。

2 个答案:

答案 0 :(得分:3)

我创建了一个简单的工作簿,其中包含一个工作表,只有2.4578中的值A1并运行以下脚本:

use Spreadsheet::XLSX;

my $excel = Spreadsheet::XLSX->new('Book1.xlsx');

my ($sheet) = @{ $excel->{Worksheet} };

print $sheet->{Cells}[0][0]{Val}, "\n";

输出:

C:\Temp> x
2.4578000000000002

所以,在这个简单的例子中,一切似乎都没问题。

如果您可以发布一个展示问题的简短,自包含的示例以及我们可以查看的小样本.xlsx文件,我们将有更好的机会识别问题。

答案 1 :(得分:2)

对于未格式化的原始值而不是$cell->{Val},请尝试使用$cell->Value()作为Excel格式的值。