Por que o xls2csv do Spreadsheet::XLSX::Utility2007 é arredondado para duas casas decimais?

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

Pergunta

Estou escrevendo um script Perl/Tk que exibe planilhas do Excel usando o script de exemplo ss2tk do módulo Spreadsheet::Read.Não arredonda duas casas decimais, mas a função de Planilha::XLSX::Utility2007 arredonda para duas casas decimais.Por que?Estou tentando usar essa segunda função como um recurso do meu programa para oferecer a conversão das planilhas exibidas em arquivos CSV.

Foi útil?

Solução

Vejo que você foi capaz obter uma resposta no PerlMonks com a ajuda de frito (qualquer relação com frito?), então estou vinculando-o para o benefício do pessoal do SO.

Para resumir, basicamente descobriu-se que o interior do Planilha::XLSX::Utility2007 estavam aplicando automaticamente um formato de 2 casas decimais ao recuperar os valores das células.As duas soluções alternativas propostas foram:

  1. Alterando a maneira como o módulo gera tipos de células (faça com que todos sejam tratados como padrões) modificando os componentes internos do XLSX.
  2. Alterando a forma como o módulo trata as células carregadas da planilha (tratando-os como tendo o valor não formatado da planilha original), também modificando os internos.

De qualquer forma, também foi mencionado que provavelmente seria melhor definir um local sub para executar o comportamento modificado, para que não haja surpresas desagradáveis ​​resultantes da alteração do módulo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top