comment obtenir des données à partir de fichier excel?
En fait je suis en train de travailler sur un programme java permettant d'extraire des données à partir d'un fichier Excel,
et je suis en utilisant le PI de la Bibliothèque, comme une question de fait, je dois spécifier le type de chaque valeur extraite, mais le fichier contient un grand nombre de données de différents types,
Donc, je demande si il y a une autre façon d'obtenir toutes les données sous forme de chaîne.
Merci.
En ce qui concerne meilleur
package DAO;
import java.io.FileInputStream;
import java.util.Iterator;
import java.util.Vector;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class ReadExcelFile {
public static void main(String[] args) {
String fileName = "C:\\Users\\marrah\\Desktop\\TRIAL FILE1.xls";
Vector dataHolder = ReadCSV(fileName);
printCellData(dataHolder);
}
public static Vector ReadCSV(String fileName) {
Vector cellVectorHolder = new Vector();
try {
FileInputStream myInput = new FileInputStream(fileName);
POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);
HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem);
HSSFSheet mySheet = myWorkBook.getSheetAt(0);
Iterator rowIter = mySheet.rowIterator();
while (rowIter.hasNext()) {
HSSFRow myRow = (HSSFRow) rowIter.next();
Iterator cellIter = myRow.cellIterator();
Vector cellStoreVector = new Vector();
while (cellIter.hasNext()) {
HSSFCell myCell = (HSSFCell) cellIter.next();
cellStoreVector.addElement(myCell);
}
cellVectorHolder.addElement(cellStoreVector);
}
} catch (Exception e) {
e.printStackTrace();
}
return cellVectorHolder;
}
private static void printCellData(Vector dataHolder) {
for (int i = 0; i < dataHolder.size(); i++) {
Vector cellStoreVector = (Vector) dataHolder.elementAt(i);
for (int j = 0; j < cellStoreVector.size(); j++) {
HSSFCell myCell = (HSSFCell) cellStoreVector.elementAt(j);
Object stringCellValue="";
stringCellValue =cellStoreVector.get(j).toString();
System.out.print(stringCellValue.toString()+"\t");
}
}
}
}
Voulez-vous pour obtenir les valeurs qu'ils ont l'air dans Excel, ou voulez-vous le contrôle de la mise en forme appliquée à chaque date de cellules, chaque numéro de cellulaire, etc?
OriginalL'auteur Zakaria Marrah | 2011-12-29
Vous devez vous connecter pour publier un commentaire.
J'ai une unité de test où j'utilise la suite pour en extraire tout le texte à partir d'un fichier Excel, sans aucune mise en forme, pour certains cas d'utilisation, cela pourrait être plus rapide que de parcourir tous les éléments un par un:
OriginalL'auteur centic
Vous pouvez créer une fonction commune à utiliser sur chaque cellule lorsque vous dirige à travers chaque ligne, ce qui valide le type de données et récupère ensuite dans votre format préféré. Si vous déplacez une ligne à l'autre et, pour chaque cellule, vous appeler quelque chose comme:
OriginalL'auteur Alfabravo