Pourquoi le fichier xls2csv de Spreadsheet :: XLSX :: Utility2007 est-il arrondi à deux décimales?

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

Question

J'écris un script Perl / Tk qui affiche des feuilles de calcul Excel à l'aide de l'exemple de script ss2tk du module Spreadsheet :: Read. Il ne complète pas deux décimales, mais la fonction de Tableur :: XLSX :: Utility2007 arrondit à deux décimales. Pourquoi? J'essaie d'utiliser cette seconde fonction comme caractéristique de mon programme pour permettre la conversion des feuilles de calcul affichées en fichiers CSV.

Était-ce utile?

La solution

Je vois que vous avez pu obtenir une réponse sur PerlMonks à l'aide du frieduck (toute relation avec friedo ?), Je le relie donc au profit des gens de SO.

En résumé, il s’est avéré que les éléments internes de Spreadsheet :: XLSX :: Utility2007 appliquaient automatiquement un format de lieu à 2 décimales lors de la récupération des valeurs de cellule. Les deux solutions de contournement proposées sont les suivantes:

  1. Modification de la façon dont le module génère des types de cellules (les traiter tous comme des paramètres par défaut) ) en modifiant les internes de XLSX.
  2. Modification de la manière dont le module traite les cellules chargées dans la feuille de calcul (en les traitant comme valeur non formatée de la feuille de calcul d'origine), également en modifiant les éléments internes.

Dans tous les cas, il a également été mentionné que vous feriez mieux de définir un sous-code local pour effectuer le comportement modifié, afin d'éviter toute mauvaise surprise résultant du changement de module. en place.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top