使用Apache POI在Excel中不显示某些列

时间:2018-05-20 15:16:03

标签: java excel apache-poi

我正在尝试用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();
		}

1 个答案:

答案 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)