poi笔记 设置单元格样式,求和,合并。

设置单元格样式


CellStyle cellStyle = workbook.createCellStyle();
//设置 水平居中
cellStyle.setAlignment(HorizontalAlignment.CENTER);
//垂直居中
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);

//设置单元格边框
cellStyle.setBorderTop(BorderStyle.THIN);
cellStyle.setBorderRight(BorderStyle.THIN);
cellStyle.setBorderBottom(BorderStyle.THIN);
cellStyle.setBorderLeft(BorderStyle.THIN);


//设置自动换行,不要设置行高
cellStyle.setWrapText(true);
//不设置行高,自适应高度
//row.setHeight((short) 400);


HSSFRow row = sheet.createRow(rowNum);
//设置行高
row.setZeroHeight(false);
row.setHeight((short) 500);




// 设置列宽
 sheet.setColumnWidth(0, 25 * 256);


//合并单元格
// 第一个参数 开始行
// 第二个参数 结束行
// 第三个参数 开始列
// 第四个参数 结束列
// 当前 表示合并 第0行和第1行 的第0列
CellRangeAddress region = new CellRangeAddress(0, 1, 0, 0);
sheet.addMergedRegion(region);


//求和

//获取最后一行
int lastRowNum = sheet.getLastRowNum();
//创建最后一行
HSSFRow row = sheet.createRow(lastRowNum + 1);
HSSFCell cell = row.createCell(0);
cell1.setCellType(CellType.STRING);
cell1.setCellStyle(cellStyle);
cell1.setCellValue("合计");

//只求和 第1列
cell = totalRow.createCell(1);
cell.setCellType(CellType.NUMERIC);
cell.setCellStyle(cellStyle);
String colTag = CellReference.convertNumToColString(1);
//sum函数 , 下面的2 表示 从第二行开始,(lastRowNum+1) 表示 最后一行
String formula = "SUM(" + colTag + "2:" + colTag + (lastRowNum + 1) + ")";
cell.setCellFormula(formula);

//
//求和多列 从第一列 开始 一直到 26列
for (int i = 1; i <= 26; i++) {
    cell = totalRow.createCell(i);
    cell.setCellType(CellType.NUMERIC);
    cell.setCellStyle(cellStyle);
    String colTag = CellReference.convertNumToColString(i);
    String formula = "SUM(" + colTag + "2:" + colTag + (lastRowNum+1) + ")";
    cell.setCellFormula(formula);
}




 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,让我来回答你关于Java POI分组合并单元格属性求和的问题。 首先,你需要使用POI库来对Excel文档进行操作。然后,你需要使用POI的类来获取单元格的值,并且对要合并单元格进行分组。 接下来,你需要用循环来遍历所有单元格,并且将其值相加。最后,将每个组的结果写回到单元格中。 这是一个基本的代码示例,可以帮助你开始: ``` import org.apache.poi.ss.usermodel.*; import java.io.*; public class MergeCells { public static void main(String[] args) throws IOException { // Read the workbook Workbook workbook = WorkbookFactory.create(new File("example.xlsx")); // Get the sheet Sheet sheet = workbook.getSheetAt(0); // Group cells to merge sheet.addMergedRegion(new CellRangeAddress(1, 3, 0, 0)); sheet.addMergedRegion(new CellRangeAddress(1, 3, 1, 1)); sheet.addMergedRegion(new CellRangeAddress(1, 3, 2, 2)); int numGroups = sheet.getNumMergedRegions(); for (int i = 0; i < numGroups; i++) { int startRow = sheet.getMergedRegion(i).getFirstRow(); int endRow = sheet.getMergedRegion(i).getLastRow(); int col = sheet.getMergedRegion(i).getFirstColumn(); double sum = 0; int count = 0; for (int j = startRow; j <= endRow; j++) { Row row = sheet.getRow(j); if (row != null && row.getCell(col) != null) { double value = row.getCell(col).getNumericCellValue(); sum += value; count++; } } Row row = sheet.getRow(startRow); Cell cell = row.createCell(col + 1); cell.setCellValue(sum); cell = row.createCell(col + 2); cell.setCellValue(count); } // Write the output to the file try (OutputStream fileOut = new FileOutputStream("example.xlsx")) { workbook.write(fileOut); } } } ``` 这个示例代码将会对一个名为example.xlsx的Excel文件进行操作,对三个单元格进行合并,并且将合并单元格中数字的总和和数量写入新单元格中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值