如何在插入数据时添加额外的行(额外的空行)

时间:2017-08-18 19:52:08

标签: java apache-poi

我使用apache poi编写excel文件。我在循环中填写数据。

例如:

header_1|header_2|header3|header_4|header_5|header6
aaaaaaa1|bbbbbb_1|cccccc3|
aaaaaaa2|bbbbbb_2|cccccc3|
aaaaaaa3|bbbbbb_3|cccccc3|
aaaaaaa4|bbbbbb_4|cccccc3|

now 它的工作正常,但每插入行需要额外的2行。 我想要这样的东西:

header_1|header_2|header3|header_4|header_5|header6
aaaaaaa1|bbbbbb_1|cccccc3|test1111|test2222|test333
                         |TestLLLL|TestXXXX|testBBB
                         |TestLLLL|TestXXXX|testBBB
aaaaaaa2|bbbbbb_2|cccccc3|test1111|test2222|test333
                         |TestLLLL|TestXXXX|testBBB
                         |TestLLLL|TestXXXX|testBBB
aaaaaaa3|bbbbbb_3|cccccc3|test1111|test2222|test333
                         |TestLLLL|TestXXXX|testBBB
                         |TestLLLL|TestXXXX|testBBB
aaaaaaa4|bbbbbb_4|cccccc3|test1111|test2222|test333
                         |TestLLLL|TestXXXX|testBBB
                         |TestLLLL|TestXXXX|testBBB

expected 循环应该是什么样的?

   for(Data d: allData){
     Row row = sheet.createRow(++row);
     Cell c = row.createCell(0);
     c.setCellValue("something);
     Cell c1 = row.createCell(1);
     c1.setCellValue("something1)
     //etc..
   }

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

for(Data d: allData){
   Row row = sheet.createRow(++row);
   Cell c = row.createCell(0);
   c.setCellValue("something01");
   c = row.createCell(1);
   c.setCellValue("something02")
   //etc..

   // Add extra rows:
   row = sheet.createRow(++row);
   c = row.createCell(0);
   c.setCellValue("something11");
   c = row.createCell(1);
   c.setCellValue("something12")
   //etc..
}

编辑:如果第一行和两个“空行”应该共享标题1-3(并且您只想减少冗余),那么您可以执行sheet.addMergedRegion(new CellRangeAdress(rowFrom, rowTo, colFrom, colTo)之类的操作来合并列和行在一起(但这使得excel文件难以理解)