Я пишу сценарий Perl / Tk, который отображает листы Excel, используя пример сценария ss2tk из модуля Spreadsheet :: Read. Он не округляет два десятичных знака, а функция из Spreadsheet :: XLSX :: Utility2007 округляет до двух десятичных знаков. Почему? Я пытаюсь использовать эту вторую функцию как функцию моей программы, чтобы предложить преобразование отображаемых листов в файлы CSV.
Почему xls2csv Spreadsheet :: XLSX :: Utility2007 округляется до двух десятичных знаков?
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 автоматически применяли формат с двумя десятичными знаками при получении значений ячеек. Были предложены два обходных пути:
- Изменение способа создания модулем типов ячеек (чтобы он обрабатывал их все как значения по умолчанию) путем изменения Внутреннее устройство XLSX.
- Изменение способа обработки модулем ячеек, загруженных из электронной таблицы (обработка их как неформатированных значение из исходной электронной таблицы), также изменив внутренние компоненты.
В любом случае, также было упомянуто, что вам, вероятно, лучше всего было бы определить подпрограмму local
для выполнения измененного поведения, чтобы не было неприятных сюрпризов в результате изменения модуля на месте.
person
Adam Bellaire
schedule
01.10.2009
Похоже, что фридак не имеет никакого отношения к фридо.
- person Brad Gilbert; 01.10.2009