如何通过使用Apache POI同时合并单元格并设置值? [英] How to merge cells and set value at the same time by using Apache POI?
问题描述
我想在我的excel模板文件中合并一些单元格,然后在合并的单元格中设置值。这是我的java代码。在添加设置值部分
之前,它在合并单元格时起作用。但是当我添加设置值部分
时,甚至没有细胞合并似乎没有改变。我还尝试在合并单元格部分
之后移动设置值部分
,然后Office提醒我修复输出excel文件。
我应该怎么做合并单元格并同时设置值?
for(int sht = 0; sht< 3; sht ++){
sheet = workbook.getSheetAt(sht);
row = 1; (数据d:列表)
{
//设置值部分
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;
}
}
你可以在excel单元格中设置CellValue,然后根据需要合并单元格。
cell = sheet.getRow(row).getCell 0);
cell.setCellValue(d.a);您可以使用 sheet.addMergedRegion(new CellRangeAddress(rowFrom,rowTo,colFrom) ,colTo));
示例:
< p $ p> sheet.addMergedRegion(new CellRangeAddress(1,1,4,2));将D2从F2合并。
记住它是零索引。
详细信息请参阅忙碌开发者指南
I want to merge some cells in my excel template file, and then set values in merged cells. Here is my java code. Before I add set value part
, it works well on merging cells. But when I just add set value part
, it seems like nothing changed even no cells merged. I also try to move set value part
after merge cells part
, then office remind me repair the output excel file.
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.
cell = sheet.getRow(row).getCell(0);
cell.setCellValue(d.a);
You can use 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
这篇关于如何通过使用Apache POI同时合并单元格并设置值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!