[英]How to merge cells and set value at the same time by using Apache POI?
I want to merge some cells in my excel template file, and then set values in merged cells. 我想合并我的Excel模板文件中的一些单元格,然后在合并的单元格中设置值。 Here is my java code.
这是我的java代码。 Before I add
set value part
, it works well on merging cells. 在我添加
set value part
之前,它适用于合并单元格。 But when I just add set value part
, it seems like nothing changed even no cells merged. 但是,当我只是添加
set value part
,即使没有单元格合并,似乎没有任何改变。 I also try to move set value part
after merge cells part
, then office remind me repair the output excel file. merge cells part
set value part
后我也尝试移动set value part
,然后办公室提醒我修复输出excel文件。
What should I do to merge cells and set value at the same time? 我该怎么做才能同时合并单元格和设置值?
for (int sht = 0; sht < 3; sht++) {
sheet = workbook.getSheetAt(sht);
row = 1;
for (Data d : list) {
// set value part
cell = sheet.getRow(row).getCell(0);
cell.setCellValue(d.a);
cell = sheet.getRow(row).getCell(1);
cell.setCellValue(d.b);
cell = sheet.getRow(row).getCell(2);
cell.setCellValue(d.c);
// merge cells part
sheet.addMergedRegion(new CellRangeAddress(row, row + 1, 0, 0));
sheet.addMergedRegion(new CellRangeAddress(row, row + 1, 1, 1));
sheet.addMergedRegion(new CellRangeAddress(row, row + 1, 2, 2));
sheet.addMergedRegion(new CellRangeAddress(row, row + 1, 3, 3));
//
row += 2;
}
}
You can setCellValue in excel cell and then merge the cells according to your requirements. 您可以在Excel单元格中设置CellValue,然后根据您的要求合并单元格。
cell = sheet.getRow(row).getCell(0);
cell.setCellValue(d.a);
You can use sheet.addMergedRegion(new CellRangeAddress(rowFrom,rowTo,colFrom,colTo));
您可以使用
sheet.addMergedRegion(new CellRangeAddress(rowFrom,rowTo,colFrom,colTo));
example : 例如:
sheet.addMergedRegion(new CellRangeAddress(1,1,4,2)); will merge from D2 to F2.
Remember it is zero based indexing. 请记住,它是基于零的索引。
for detail refer BusyDeveloper's Guide 有关详细信息,请参阅BusyDeveloper指南
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.