为什么在读取Perl中的Excel 2007(.xlsx)文件时,数值会被截断?
我正在使用Spreadsheet :: ParseExcel读取.xls
文件,并能够按原样获取数据。
但是,使用Spreadsheet :: XLSX读取.xlsx
文件时,读取的值将被截断。
例如, 2.4578
in .xls
和.xlsx
文件分别读取为2.4578
和2.45
。
请build议为什么.xlsx
文件数据已损坏。
我创build了一个简单的工作簿,其中包含一张工作表,只有A1
的值为2.4578
,并运行以下脚本:
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
文件,我们可以更好地找出问题。
对于Excel格式化的值,请尝试使用$cell->{Val}
获取未格式化的原始值,而不是$cell->Value()
。