我有两个元素数量不同的 ArraysLists(X 和 Y)。现在,我想将它们相互导出到一个 excel 表中。X 和 Y 应该有自己的列并排。
示例:X = [2 , 6 , 0], Y = [5 , 8 , 3]
X | Y
------
2 | 5
6 | 8
0 | 3
每次我运行程序时,数组都会获得新元素。在我的程序结束时,这些必须保存在 excel 表中,并且每次都保存在新工作表中。当我打开我的程序五次时,我应该有五张表(我的表的名称是实际的时间和日期 - 它保存在一个名为 date 的变量中)。
我的问题: 1. 我怎样才能让我的 ArrayLists 进入他们自己的列?2. 我应该如何创建新工作表而不覆盖旧工作表?
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet(date); //everytime, the sheet will be overwritten, but i need a new sheed. something like workbook.addSheet(date) would be perfect
Map<String, Object[]> data = new HashMap<String, Object[]>();
data.put("1", new Object[] {"column 1", "column 2"});
//maybe some kind of for-loop for my ArrayLists? Dont know
Set<String> keyset = data.keySet();
int rownum = 0;
for (String key : keyset) {
Row row = sheet.createRow(rownum++);
Object [] objArr = data.get(key);
int cellnum = 0;
for (Object obj : objArr) {
Cell cell = row.createCell(cellnum++);
if(obj instanceof Date)
cell.setCellValue((Date)obj);
else if(obj instanceof Boolean)
cell.setCellValue((Boolean)obj);
else if(obj instanceof String)
cell.setCellValue((String)obj);
else if(obj instanceof Double)
cell.setCellValue((Double)obj);
}
}
try {
FileOutputStream out =
new FileOutputStream(new File(".//src//excel-table.xls"));
workbook.write(out);
out.close();
System.out.println("Excel written successfully..");
} catch (FileNotFoundException e) {
e.printStackTrace();
}