当前位置: 首页 > wzjs >正文

网站开发后需要交接哪些材料系统优化app最新版

网站开发后需要交接哪些材料,系统优化app最新版,施工企业税款缴纳,南通优化网站价格在日常工作中,Excel 是一个不可或缺的工具,尤其是在处理大量数据时。为了提升数据的可读性和美观性,我们经常需要对 Excel 中的单元格进行合并操作。本文将介绍如何使用 Apache POI 库在 Java 中实现 Excel 单元格的合并,并提供一…

在日常工作中,Excel 是一个不可或缺的工具,尤其是在处理大量数据时。为了提升数据的可读性和美观性,我们经常需要对 Excel 中的单元格进行合并操作。本文将介绍如何使用 Apache POI 库在 Java 中实现 Excel 单元格的合并,并提供一个现成的工具类供大家使用。

工具类介绍

我们提供了一个名为 ExcelMergeUtility 的工具类,它可以帮助你轻松地合并 Excel 中的单元格。该类支持纵向合并(按行合并)和横向合并(按列合并),并且可以指定需要合并的列。

工具类代码

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.springframework.stereotype.Component;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;@Component
public class ExcelMergeUtility {/*** 合并Excel中内容相同的单元格** @param workbook       工作簿* @param sheetName      工作表名称* @param columnsToMerge 需要合并的列索引列表* @param isRowMerge     是否按行合并(纵向合并)* @param isColumnMerge  是否按列合并(横向合并)*/public void mergeCells(Workbook workbook, String sheetName, List<Integer> columnsToMerge,boolean isRowMerge, boolean isColumnMerge) {Sheet sheet = workbook.getSheet(sheetName);if (sheet == null) {throw new IllegalArgumentException("工作表 " + sheetName + " 不存在");}// 记录第一列的合并行数int firstColMergeEndRow = 0;for (int colIndex : columnsToMerge) {for (int rowIndex = 0; rowIndex <= sheet.getLastRowNum(); rowIndex++) {Row currentRow = sheet.getRow(rowIndex);if (currentRow == null) continue;Cell currentCell = currentRow.getCell(colIndex);if (currentCell == null) continue;String currentValue = currentCell.getStringCellValue();if (isRowMerge) {// 纵向合并int mergeStartRow = rowIndex;while (rowIndex + 1 <= sheet.getLastRowNum()) {Row nextRow = sheet.getRow(rowIndex + 1);if (nextRow == null) break;Cell nextCell = nextRow.getCell(colIndex);if (nextCell == null || !nextCell.getStringCellValue().equals(currentValue)) break;// 如果当前列不是第一列,且合并行数超过前一列的合并行数,则停止合并if (colIndex > 0 && rowIndex + 1 > getMergeEndRow(sheet, mergeStartRow, colIndex - 1)) break;// 如果合并行数超过第一列的合并行数,则停止合并if (colIndex > 0 && rowIndex + 1 > firstColMergeEndRow) break;rowIndex++;}if (mergeStartRow != rowIndex) {sheet.addMergedRegion(new CellRangeAddress(mergeStartRow, rowIndex, colIndex, colIndex));}// 如果是第一列,记录合并的最后一行if (colIndex == 0) {firstColMergeEndRow = rowIndex;}}if (isColumnMerge) {// 横向合并int mergeStartCol = colIndex;while (colIndex + 1 < currentRow.getLastCellNum()) {Cell nextCell = currentRow.getCell(colIndex + 1);if (nextCell == null || !nextCell.getStringCellValue().equals(currentValue)) break;colIndex++;}if (mergeStartCol != colIndex) {sheet.addMergedRegion(new CellRangeAddress(rowIndex, rowIndex, mergeStartCol, colIndex));}}}}}/*** 获取指定单元格的合并的最后一行** @param sheet     工作表* @param rowIndex  行索引* @param colIndex  列索引* @return 合并的最后一行*/private int getMergeEndRow(Sheet sheet, int rowIndex, int colIndex) {for (CellRangeAddress mergedRegion : sheet.getMergedRegions()) {if (mergedRegion.isInRange(rowIndex, colIndex)) {return mergedRegion.getLastRow();}}return rowIndex; // 如果没有合并,则返回当前行}/*** 示例:生成Excel并合并单元格*/public void generateAndMergeExcel(String filePath, String sheetName, List<Integer> columnsToMerge,boolean isRowMerge, boolean isColumnMerge) throws IOException {// 打开现有的Excel文件Workbook workbook = WorkbookFactory.create(new FileInputStream(filePath));// 合并单元格mergeCells(workbook, sheetName, columnsToMerge, isRowMerge, isColumnMerge);// 写入文件try (FileOutputStream fileOut = new FileOutputStream(filePath)) {workbook.write(fileOut);}workbook.close();}
}

调用示例

List<Integer> columnsToMerge = Arrays.asList(0, 1, 2, 3, 4, 5); // 合并第1列和第2列
boolean isRowMerge = true; // 启用纵向合并
boolean isColumnMerge = false; // 禁用横向合并excelMergeUtility.generateAndMergeExcel("C:\\Users\\xxxx\\Downloads\\汇总记录2025-03-04%2B10_38_30.xls", "汇总", columnsToMerge, isRowMerge, isColumnMerge);

依赖配置

为了使用这个工具类,你需要在你的项目中添加 Apache POI 的依赖:

<!-- Apache POI 核心库 -->
<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version>
</dependency>
<!-- Apache POI OOXML 库,用于处理 .xlsx 文件 -->
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version>
</dependency>

在这里插入图片描述
在这里插入图片描述

总结

通过 ExcelMergeUtility 工具类,你可以轻松地实现 Excel 单元格的合并操作。无论是纵向合并还是横向合并,该工具类都能满足你的需求。希望本文对你有所帮助,欢迎在评论区分享你的使用体验和问题。

http://www.dtcms.com/wzjs/286218.html

相关文章:

  • 手机网站开发哪个好江东怎样优化seo
  • 网站设计建议百度点击软件找名风
  • 深圳做网站公司哪家好舆情监测系统排名
  • 专做商业平台网站广东免费网络推广软件
  • 如何让产品吸引顾客优化网络软件
  • 电子商务网站建设与管理答案优秀的软文广告欣赏
  • 微信免费建站长沙seo咨询
  • 沈阳做网站建设数据分析师一般一个月多少钱
  • 比较冷门的视频网站做搬运电商广告网络推广
  • 学网站开发推荐书推广引流工具
  • 做淘宝还是做网站容易电子商务网站建设方案
  • 欧美在路边给了钱就可以做网站网络广告策划书案例
  • 做爰视频在线观看免费网站seo推广排名
  • 郑州网站开发网站开发微信广告投放平台
  • 长沙网站建设 个人网络营销渠道名词解释
  • php和网站开发外贸推广是做什么的
  • 网站建站图片关系营销案例
  • 企业网站建设实训指导书整站优化加盟
  • 深圳市建设厅网站跨国网站浏览器
  • 武汉肥猫科技商城网站建设产品软文怎么写
  • 电商网站建设与运营方向自己网站怎么推广
  • 长沙仿站模板网站建设百度贴吧网页版登录
  • 网站推广的四个阶段包括西安网站建设公司十强
  • 恶搞网站在线制作生成器产品推广网站哪个好
  • wordpress大型网站朋友圈营销广告
  • 淮北官方网站百度推广后台登陆
  • 怎么给网站做搜索功能徐州百度推广
  • 网络营销公微信seo排名优化软件
  • 怎么做网站像淘宝这样的电商培训班一般多少钱
  • 付费小说网站怎么做seo价格查询公司