Comment ajouter de nouvelles feuilles pour classeur excel existant à l'aide d'apache POI?
Je suis en train d'écrire les données de la Liste en plusieurs feuille excel dans un carnet de travail. comme pour la première liste, le code va créer un nouveau classeur et de créer de nouvelles sur la fiche de la liste[1], pour la deuxième liste, il va créer la nouvelle feuille dans le classeur existant et ainsi de suite. j'ai donc écrit au-dessous de code. mais il ne marche pas et je suis capable de voir seulement la première fiche de la liste[1]. quelqu'un peut-il m'aider à fournir toute autre solution?
le code ci-dessous j'ai écrit
ArrayList<List<String>> tempresultdata=this.getSummaryList();
HSSFWorkbook workbook = new HSSFWorkbook();
String fileName="Path\\To\\XLS";
File file = new File(fileName);
FileOutputStream out;
if(!file.exists()) //This will create new workbook with new sheet if it doesnt exists{
HSSFSheet mySheet = workbook.createSheet(sheetname);
writeExcel(mySheet,tempresultdata);
} else //This add new sheet to above created workbook {
try {
HSSFWorkbook myWorkBook = (HSSFWorkbook) WorkbookFactory.create(file);
workbook=myWorkBook;
HSSFSheet mySheet = (HSSFSheet) workbook.createSheet(sheetname);
writeExcel(mySheet,tempresultdata);
} catch (InvalidFormatException e) {
//TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
try{
out = new FileOutputStream(fileName,true);
workbook.write(out);
out.close();
}catch(Exception e){
e.printStackTrace();
}
Grâce,
Priyank Shah
- Où est le code pour
writeExcel
? - il est défini par l'utilisateur fonctions. que mappé contenu de la liste de cellules excel.
- Vous n'êtes jamais en ajoutant une feuille, donc sûrement avoir qu'une seule feuille à la sortie est attendue?
- Je suis confronté au même problème pour la création de plusieurs feuilles de calcul dans excel existant, pouvez-vous garder l'application de travail pour l'exportation des données vers excel à plusieurs à l'aide de servlets.
Vous devez vous connecter pour publier un commentaire.
Si le fichier n'existe pas, alors ce code crée un nouveau fichier et crée également de l'échantillon de la feuille sheet1, mais si le fichier existe, il ajoute une nouvelle feuille excel existant fichier.
Dirait que vous êtes seulement de l'écriture du
sheet
pas leworkbook
sheet
àwriteExcel
donc je suis en supposant qu'il est seulement écrit sur la feuille de ne pas le livre.List<List<String>>
et que vous essayez de créer une nouvelle feuille pour chaque outter liste. Cependant, je ne vois pas où vous en parcourant les outter liste de la création d'une nouvelle fiche pour chaque liste. Semble que vous ne créez une feuille, même si il y a 8 listes.Vous pouvez utiliser Bhaskar du code de choses à travailler et à utiliser WorkbookFactory vous aurez probablement besoin de télécharger poi-ooxml-3.7.jar fichier.
Voici le lien pour vous:
http://grepcode.com/snapshot/repo1.maven.org/maven2/org.apache.poi/poi-ooxml/3.7
Pour ajouter plus d'une feuille Excel vers un nouveau fichier Excel, ces feuilles doivent être créées à partir d'un classeur, et écrit une fois pour le fichier de sortie de flux
Tout en travaillant avec classeur existant , Vous ne devez pas créer un fichier objet , il suffit de Fournir à l'Emplacement du Fichier à
FileInputStream
objet et le passer de la référence à un classeur, puis faire ce que vous voulez faire avec le fichier existant. Pour ajouter une feuille de simplement utiliser la Méthode de création de la commande