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

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

1 Ответ

2 голосов
/ 01 октября 2009

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

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

  1. Изменение способа, которым модуль генерирует типы ячеек (сделайте так, чтобы все они обрабатывались как значения по умолчанию) путем изменения внутренних компонентов XLSX.
  2. Изменение способа, которым модуль обрабатывает ячейки, загруженные из электронной таблицы (рассматривая их как имеющие неотформатированное значение из исходной электронной таблицы), также путем изменения внутренних элементов.

В любом случае, было также упомянуто, что вам лучше всего определить сабвуфер local для выполнения измененного поведения, чтобы не было никаких неприятных сюрпризов в результате изменения модуля на месте.

...