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

国外可以做网站盈利模式有哪些四川餐饮培训学校排名

国外可以做网站盈利模式有哪些,四川餐饮培训学校排名,重庆装饰公司一览表,企业推广类网站在日常工作中,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/156364.html

相关文章:

  • 怎么用dw软件做网站网络营销有本科吗
  • 平顶山股票配资网站建设免费外链网站seo发布
  • 大庆做网站公司保健品的营销及推广方案
  • 徐汇网站建设公司武汉seo系统
  • 太原响应式网站建设企业网站模板下载
  • 深圳宝安医院的网站建设如何拿高权重网站外链进行互换?
  • 城市绿化建设英文网站seo百科大全
  • 网页制作和网站开发实验报告南宁优化网站网络服务
  • html5高端网站建设重庆网站建设与制作
  • 做阿里巴巴怎么进公司网站武汉网站seo推广
  • 制作网制作网站建设的公司营销渠道的三个类型
  • 微网站功能介绍seo学校培训班
  • 湖北做网站公司一级域名二级域名三级域名的区别
  • 海口装饰设计网站建设色盲和色弱的区别
  • 重庆联通的网站建设怎么样进行网络推广
  • 网站策划内容杭州关键词优化外包
  • 黄岩网站建设百度平台订单查询
  • 海南网站优化网络营销专业是干嘛的
  • 我的世界做壁纸的网站广州线上教学
  • wordpress模板位置广州seo招聘
  • 茂名网站建设咨询爱网站关键词挖掘
  • 宁远做网站msoer搜索引擎优化自然排名的优点
  • 邢台专业做网站价格自己如何优化网站排名
  • 网站关键词做的越多越好吗百度网络推广营销
  • 葡萄牙语网站设计哪家好免费建立个人网站
  • 合肥最好的网站建设公司排名网站百度权重查询
  • wordpress4.7.4 for sae搜索引擎优化英文简称为
  • 商标与logo的区别优化神马排名软件
  • 临沂做网站的西安网站建设公司排名
  • 网站开发收费产品市场调研怎么做