Pregunta

Estoy escribiendo una secuencia de comandos Perl / Tk que muestra hojas de cálculo de Excel utilizando la secuencia de comandos de ejemplo ss2tk del módulo Hoja de cálculo :: Leer. No redondea dos decimales, pero la función de Hoja de cálculo :: XLSX :: Utility2007 redondea a dos decimales. ¿Por qué? Estoy tratando de usar esa segunda función como una característica de mi programa para ofrecer la conversión de las hojas de trabajo mostradas a archivos CSV.

¿Fue útil?

Solución

Veo que pudo obtener una respuesta en PerlMonks con la ayuda de frieduck (cualquier relación con friedo ?), Así que lo estoy vinculando en beneficio de SO gente.

Para resumir, básicamente resultó que las partes internas de Hoja de cálculo :: XLSX :: Utility2007 aplicaban automáticamente un formato de 2 decimales al recuperar los valores de las celdas. Las dos soluciones propuestas fueron:

  1. Cambiando la forma en que el módulo genera tipos de celdas (haga que los trate a todos como predeterminados ) modificando los componentes internos XLSX.
  2. Cambiando la forma en que el módulo trata las celdas cargadas desde la hoja de cálculo (tratándolas como teniendo el valor sin formato de la hoja de cálculo original), también mediante la modificación de elementos internos.

De cualquier manera, también se mencionó que probablemente sería mejor definir un sub local para realizar el comportamiento modificado, de modo que no haya sorpresas desagradables como resultado de cambiar el módulo en su lugar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top