I am trying to write List data into multiple excel sheet in one work book. like for first list, the code will create new workbook and create new sheet for list[1], for secon
To add more than one Excel sheet to a new Excel file, those sheets need to be created from one workbook, and written once to the file output stream
import java.io.*;
import java.util.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
public class JustATest {
public static void main(String[] args) throws Exception {
XSSFWorkbook AWorkbook = new XSSFWorkbook(); //Create blank workbook
for (int i = 0; i < 10; i++) {
XSSFSheet spreadsheet = AWorkbook.createSheet(" Employee "+i);
// the follwing code is to create dummy data in sheets
// is similar to the one at tutorialPoint.com
XSSFRow row;
//This data needs to be written (Object[])
Map < String, Object[] > empinfo = new TreeMap< String, Object[] >();
empinfo.put( "1", new Object[] { "EMP ID", "EMP NAME", "DESIGNATION" });
for (int j = 0; j < i; j++) {
empinfo.put( j+2+"", new Object[] { j+2+"", "Fadel K", "Technical Manager" });
}
//Iterate over data and write to sheet
Set keyid = empinfo.keySet();
int rowid = 0;
for (String key : keyid){
row = spreadsheet.createRow(rowid++);
Object [] objectArr = empinfo.get(key);
int cellid = 0;
for (Object obj : objectArr){
Cell cell = row.createCell(cellid++);
cell.setCellValue((String)obj);
}
}
// dummy data creation over.
}
// here you write all sheets at once, by writing the entier workbook
FileOutputStream out = new FileOutputStream(new File("AllData.xlsx"));
AWorkbook.write(out);
out.close();
}
}