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

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


person socrtwo    schedule 03.05.2009    source источник
comment
Это слишком сложный вопрос. Можете ли вы сократить проблему до короткого фрагмента кода и опубликовать его? Или хотя бы ссылку на пример скрипта и / или на модуль perldoc CPAN?   -  person Chris Dolan    schedule 03.05.2009
comment
Также размещено здесь: mahalo.com/answers/programming/   -  person Adrian Archer    schedule 03.05.2009
comment
Вы спрашивали автора модуля?   -  person Schwern    schedule 03.05.2009


Ответы (1)


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

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

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

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

person Adam Bellaire    schedule 01.10.2009
comment
Похоже, что фридак не имеет никакого отношения к фридо. - person Brad Gilbert; 01.10.2009