Почему значения усекаются при чтении файла Excel 2007 (.xlsx) в Perl? - PullRequest
2 голосов
/ 18 июня 2010

Я читаю файл .xls с использованием Spreadsheet :: ParseExcel и смог получить данные как есть.

Но при чтении файла .xlsx с использованием Spreadsheet :: XLSX , значения для чтения усечены.

Например, 2.4578 в .xls и .xlsx файл читается как 2.4578 и 2.45 соответственно.

Укажите, почему данные файла .xlsx повреждены.

Ответы [ 2 ]

3 голосов
/ 18 июня 2010

Я создал простую книгу с одним листом и значением 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 файла, который мы можем просмотреть, у нас будет больше шансов определить проблему.

2 голосов
/ 18 июня 2010

Попробуйте $cell->{Val} для неотформатированного необработанного значения вместо $cell->Value() для форматированного значения Excel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...