Выгрузка данных в Excel с помощью perl

Данные выгружаются из БД Oracle скриптом Perl. Эти данные отображаются пользователю на странице, а также выгружаются в excel файл, ссылка на скачивание также есть на этой страничке. Проблема с выгрузкой данных: например 2 поля, счёт клиента и его номер мобильного телефона. На самой страничке они отображаются корректно: 00933123456789 и 375291234567. Но в excel у счетов пропадают первые два нуля и счета с телефоном отображаются в виде: 7,53E+11. Например, если в excel поменять формат ячеек для телефонов на числовой, то телефоны нормально отображаются, но у счетов пропадают первые два нуля в любом случае. Как исправить ситуацию? На страничку данные выводятся так: $sth -> bind_columns( undef, \$n1, \$n2, \$n3, \$n4, \$n5, \$n6, \$n7, \$n8, \$n9, \$n10 ); while($sth->fetch()) {print qq|\n\t\t$n1.....$n10|;} А в EXCEL файл так: $worksheet->write($row,$col0, $n1); и т.д.


Ответы (2 шт):

Автор решения: hobo-mts

Перед нулями попробуйте добавить одиночную кавычку ', чтобы Эксель не умничал с форматами.

→ Ссылка
Автор решения: Mikhail Sialiuk

Ответ нашел в документации metacpan: $worksheet->write($row,$col0, $n1); заменил на $worksheet->write_string($row,$col0, $n1);. И теперь в переменной n1 все передается как надо в excel.

→ Ссылка