我正在尝试用java编写excel。
From this link here,数据从Object Array中保存。但是,对于我的情况,实际上数据来自名为NameGenerator的两个方法来创建一个名称和一个名为PhoneGenerator的方法来创建一个数字。并逐行将这些值保存到excel。结果如下所示。
彼得| 5124131摇滚| 24141
苏珊| 067643
但是当前代码会覆盖名称。结果excel文件看起来像
| 5124131 | 24141 | 067643
有谁愿意帮助我吗?任何输入将是欣赏!
try {
//create excel
FileOutputStream fileOut = new FileOutputStream(
"excelfile.xls");
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet worksheet = workbook.createSheet("Register Data");
DataGenerator dg = new DataGenerator();
for (int i = 0; i < 3; i++) {
//NameGenerator method will create random name
String name = dg.NameGenerator;
//PhoneGenerator method will create random phone
String phone = dg.PhoneGenerator;
worksheet.createRow(i).createCell(0).setCellValue(name);
worksheet.createRow(i).createCell(1).setCellValue(phone);
}
//save excel
workbook.write(fileOut);
fileOut.flush();
fileOut.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
答案 0 :(得分:0)
我认为你误用了SELECT t1.Customer, min(t1.date), count(*), max(t2.date)
FROM tablename t1
JOIN tablename t2 ON t2.date >= t1.date AND t2.date < t1.date + interval '1' month
GROUP BY t1.Customer
HAVING count(*) > 1
方法。你应该为每一行调用一次,否则它将重新创建你以前拥有的东西,你所拥有的东西将会丢失(因此你会失去第一列)。
这样做:
createRow(index)