要素数が異なる 2 つの ArraysLists (X と Y) があります。今、それらを相互にExcelテーブルにエクスポートしたいと思います。X と Y には、独自の列が並んでいる必要があります。
例: X = [2、6、0]、Y = [5、8、3]
X | Y
------
2 | 5
6 | 8
0 | 3
プログラムを実行するたびに、配列は新しい要素を取得します。私のプログラムの最後に、それらをExcelテーブルに保存し、毎回新しいシートに保存する必要があります。pogramm を 5 回開くと、5 つのシートが必要です (シートの名前は実際の時刻と日付で、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();
}