2010-08-19 18 views
0

J'ai écrit une méthode Java qui utilise l'API POI HSSF pour convertir un fichier Excel en ma structure de données.Pourquoi une valeur de cellule est renvoyée en tant que chaîne vide même si elle contient du contenu?

Le code a bien fonctionné pendant un certain temps. Mais maintenant il y a soudainement des problèmes. Je suppose que c'est peut-être parce que récemment nous avons installé Office 2007 sur tous les ordinateurs clients, précédemment nous avions Office 2003.

Le problème que j'ai rencontré est: Dans le fichier XLS, j'ai une colonne de cellules qui est remplie avec serial- numéros par l'utilisateur. Lorsque l'application Java obtient la cellule, elle a un type de cellule STRING. Et quand je demande la valeur de chaîne de la cellule, j'obtiens une chaîne vide.

Le fichier est créé à l'origine par l'application, puis les utilisateurs le remplissent avec des données et le rechargent dans l'application. Donc, je ne pense pas que le format de fichier est faux, car il est créé par la même version de l'API.

Quel pourrait être le problème?

EDIT:

Précision: Nous avons pris une installation d'Office 2007, mais l'application utilise toujours le format HSSF et XLS. Seuls les utilisateurs ouvrent et modifient les fichiers avec Office 2007. Est-ce un problème?

+0

Est-ce toutes les cellules de la colonne ou juste un en particulier? Nous avions l'habitude d'avoir des problèmes avec le POI lisant la valeur hors de la cellule active qui peut souvent se produire si la feuille est éditée par un utilisateur. –

+0

Ce sont toutes les cellules de cette colonne. La particularité est, il y a une autre colonne qui est remplie avec des valeurs numériques, et il lit très bien ... – Malki

+0

Utilisez le format de fichier POI-XSSF pour Excel 2007 OOXML (.xlsx) :) – Paul

Répondre

1

Avez-vous vérifié si Excel a automatiquement changé le type de cellule en NUMERIC lorsque l'utilisateur a entré la valeur?
Excel a cette fonction ennuyante pour "deviner intelligemment" quel type de valeur l'utilisateur entre, ce qui provoque souvent un problème dans les POI.

+0

Comment puis-je vérifier si Excel a automatiquement basculé le type de cellule? – Malki

+0

http://www.j-walk.com/ss/excel/tips/tip62.htm –

0

HSSF est l'implémentation Java pure du projet POI du format de fichier Excel '97 (-2007). XSSF est l'implémentation Java pure du projet POI du format de fichier Excel 2007 OOXML (.xlsx).

lire furthur http://poi.apache.org/spreadsheet/index.html

+0

Est-ce que la réponse ci-dessus vous est utile :) – Paul