在excel上创建多个工作表在
问题描述:
我试图在一个excel文件上创建两个不同的工作表。但只能得到第一张。如何获得第二张?我在哪里错了?请帮助在excel上创建多个工作表在
下面是代码:
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();
答
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();
+0
它的工作。感谢很多。 – Shahrin 2014-11-25 11:11:26
答
你必须使用workbook.setSheetOrder(SHEETNAME,POS),你可以有递增POS变量作为逻辑需要。
什么是“工作簿”?我假设你正在使用一些第三方库(可能是Apache POI?)。如果是这样的话,你应该在你的问题中提及它,也许还包括版本号,它可能与你的问题有关。 – AJPerez 2014-11-25 10:59:46