Почему xls2csv в Spreadsheet :: XLSX :: Utility2007 округляется до двух десятичных разрядов?

StackOverflow https://stackoverflow.com/questions/816038

Вопрос

Я пишу скрипт на Perl / Tk, который отображает листы Excel с использованием примера скрипта ss2tk из модуля Spreadsheet :: Read. Он не округляет два десятичных знака, а выполняет функцию из электронной таблицы :: XLSX :: Utility2007 округляет до двух знаков после запятой. Зачем? Я пытаюсь использовать эту вторую функцию в качестве функции моей программы, чтобы предложить преобразование отображаемых листов в файлы CSV.

Это было полезно?

Решение

Я вижу, вы смогли получить ответ в PerlMonks с помощью frieduck (любое отношение к friedo ?), Поэтому я связываю это для пользы ТАКИХ людей.

Подводя итог, в основном оказалось, что внутренности Spreadsheet :: XLSX :: Utility2007 автоматически применяли формат с двумя десятичными разрядами при получении значений ячеек. Были предложены два обходных пути:

<Ол>
  • Изменение способа, которым модуль генерирует типы ячеек (сделайте так, чтобы он воспринимал их все как значения по умолчанию ) путем изменения внутренних компонентов XLSX.
  • Изменение способа, которым модуль обрабатывает ячейки, загруженные из электронной таблицы (рассматривая их как с неотформатированным значением из исходной электронной таблицы), а также путем изменения внутренних элементов.
  • В любом случае, также было упомянуто, что вам лучше всего определить подпрограмму local для выполнения измененного поведения, чтобы не было никаких неприятных сюрпризов в результате изменения модуля. на месте.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top