在Excel中创build多个工作表

我正试图在一个Excel文件上创build两个不同的工作表。 但只能得到第一张。如何得到第二张? 我在哪里错了? 请帮忙

以下是代码:

WorkbookSettings ws = new WorkbookSettings(); ws.setLocale(new Locale("en", "EN")); WritableWorkbook workbook = Workbook.createWorkbook(new File(filename), ws); WritableSheet s = workbook.createSheet("Summary", 0); // set font ,border,alignment cf.setWrap(true); Label l = null; l = new Label(0, 0, "Ticket Product", cf); s.addCell(l); ............................................ ............................................ // code to load data on the first sheet int columns = s.getColumns(); for (i = 0; i < columns; i++) { //write on excel columnwise } workbook.write(); s = workbook.createSheet("Details", 1); // set font ,border,alignment cf.setWrap(true); l = null; l = new Label(0, 0, "Ticket Product", cf); s.addCell(l); ............................................ ............................................ //code to load data on the second sheet columns = s.getColumns(); for (i = 0; i < columns; i++) { //the same loop as before to write columnwise } workbook.write(); workbook.close(); 

您必须使用workbook.setSheetOrder(sheetName,pos) ,并且可以根据需要让逻辑来增加posvariables。

  WorkbookSettings ws = new WorkbookSettings(); ws.setLocale(new Locale("en", "EN")); WritableWorkbook workbook = Workbook.createWorkbook(new File(filename), ws); WritableSheet sheet1 = workbook.createSheet("Summary", 0);//Create the first sheet WritableSheet sheet2 = workbook.createSheet("Details", 1);//Create the second sheet // set font ,border,alignment cf.setWrap(true); Label l = null; l = new Label(0, 0, "Ticket Product", cf); sheet1.addCell(l); ............................................ ............................................ // code to load data on the first sheet int columns = sheet1.getColumns(); for (i = 0; i < columns; i++) { //write on excel columnwise in sheet 1 } int columnsheet2 = sheet2.getColumns(); for (i = 0; i < columns; i++) { //write on excel columnwise in sheet 2 } workbook.write(); s = workbook.createSheet("Details", 1); //here is the mistake you are using the same 's' object. // set font ,border,alignment cf.setWrap(true);`enter code here` l = null; l = new Label(0, 0, "Ticket Product", cf); sheet1.addCell(l); ............................................ ............................................ //code to load data on the second sheet columns = s.getColumns(); for (i = 0; i < columns; i++) { //the same loop as before to write columnwise } workbook.write(); workbook.close();