`
步青龙
  • 浏览: 297976 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
72ba33fb-eefe-3de1-bd65-82a6e579265d
Java面试
浏览量:0
社区版块
存档分类
最新评论

Excel合并算法最终版

    博客分类:
  • POI
 
阅读更多


package com.zjpii.rtbts.commons;
import org.apache.poi.hssf.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFSheet;
public class MergeUtil {
	/* 
	 * comlumnData 纵列值
	 * attachRows 表头的附加行
	 */
	public void getColumn(String[] comlumnData,XSSFSheet sheet,int column,int attachRows) {
		int start = 0;
		for (int i = 0; i < comlumnData.length; i++) {
			if (i>0 && !comlumnData[i-1].equals(comlumnData[i])) // 当前值与上一个值不同
				start = i;
			if(start!=i && !(i<(comlumnData.length-1) && comlumnData[i].equals(comlumnData[i+1])))
				sheet.addMergedRegion(new CellRangeAddress((start+attachRows),(i+attachRows),column, column));// 数量	
		}
	}
	/*
	 *  reference 做参考的列
	 *  to  要进行合并的列
	 */
	public void referenceToColumn(String[] reference, String[] to,XSSFSheet sheet,int column,int attachRows) {
		String[] comlumnData = new String[to.length];
		for(int i=0;i<comlumnData.length;i++) 
		 comlumnData[i] = reference[i]+to[i];
		 getColumn(comlumnData,sheet,column,attachRows);
	}
}
  改成单例的
package com.zjpii.rtbts.commons;
import org.apache.poi.hssf.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFSheet;
public class MergeUtil {
	// 单例
	static class MergeUtilHolder {    
        static MergeUtil instance = new MergeUtil();         
    }         
    public static MergeUtil getInstance() {   
        return MergeUtilHolder.instance;         
    }   
	/* 
	 * comlumnData 纵列值
	 * attachRows 表头的附加行
	 */
	public void getColumn(String[] comlumnData,XSSFSheet sheet,int column,int attachRows) {
		int start = 0;
		for (int i = 0; i < comlumnData.length; i++) {
			if (i>0 && !comlumnData[i-1].equals(comlumnData[i])) // 当前值与上一个值不同
				start = i;
			if(start!=i && !(i<(comlumnData.length-1) && comlumnData[i].equals(comlumnData[i+1])))
				sheet.addMergedRegion(new CellRangeAddress((start+attachRows),(i+attachRows),column, column));// 数量	
		}
	}
	/*
	 *  reference 做参考的列
	 *  to  要进行合并的列
	 */
	public void referenceToColumn(String[] reference, String[] to,XSSFSheet sheet,int column,int attachRows) {
		String[] comlumnData = new String[to.length];
		for(int i=0;i<comlumnData.length;i++) 
		 comlumnData[i] = reference[i]+to[i];
		 getColumn(comlumnData,sheet,column,attachRows);
	}
}
 




分享到:
评论

相关推荐

    EXCEL百宝箱8.0终极版

    【取消合并还原合并数据】:对一列中合并后的单元格取消合并,且恢复合并前所有数据 【合并数据并复制】:可以将一个区域的数据直接复制到一个单元格中 【合并区域自动换行】:可以让具有合并单元格的区域在自动换行...

    excel compare 下载地址

    在探讨“Excel Compare”的知识点时,我们首先需要理解其核心功能与应用场景,进而深入到下载、安装及使用等环节,最终达到对这款软件全面而深入的掌握。 ### Excel Compare:对比与合并工具 #### 一、Excel ...

    多个excel导出压缩成zip 文件 数据量大导出

    - 使用zip压缩格式,能有效降低文件体积,因为zip支持有损和无损压缩算法,可以根据需要选择合适的压缩级别。 - 在处理大量文件时,压缩还能减少文件管理的复杂性,用户只需处理一个zip档案即可。 4. **编程实现*...

    Excel Merger-开源

    对于最终用户,这个工具提供了一种便捷的方式,解决了日常工作中需要合并大量Excel文件的困扰。 要了解和使用这个项目,你可以从其官方仓库下载源代码,根据项目文档进行编译和安装。如果你对编程感兴趣,还可以...

    利用VBA编程实现从EXCEL表到AUTOCAD表转换.doc

    在 Microsoft Excel 中,与表对应的对象是工作表(Sheet 或 Worksheet),与每一个表格方格相对应的对象是单元格区域(range),它能够仅包括一个单元格(cell),也能够由多个单元格合并而成。在 AutoCAD 中,没有...

    车牌识别.zip

    最终找到车牌区域。 倾斜校正: 本文在针对倾斜角度的图片采取rando算法进行倾斜角度计算,并对倾斜图片进行修正。从而得到水平方向一致的图片。有利于后期的图片分割及图像识别。 字符分割: 将计算得到车牌区域的...

    pdf压缩软件

    除了压缩功能,一些高级的PDF压缩软件还可能具备其他辅助功能,如PDF合并、PDF拆分、PDF加密、PDF转换(如转换为Word、Excel、图片等格式)以及PDF编辑等。这些功能使得用户在处理PDF文件时更加便捷高效。 在选择...

    Python数据分析教程的资料含实例源码

    DataFrame不仅支持常见的统计方法,还能进行数据清洗、合并、重塑等多种操作。另一个关键库NumPy提供了高效的数值计算功能,特别是在多维数组操作上表现出色。Scipy则提供了更高级的数学、科学计算和工程计算功能,...

    用于毕业设计.zip

    1. **文件压缩**: 压缩包文件如.zip格式,是将多个文件或文件夹合并成一个单一文件,通过算法减少文件大小,便于传输和存储。这在处理大体积数据时尤其有用。常见的压缩软件有WinRAR和7-Zip。 2. **代码管理**: ...

    八位微控制器的代码优化技巧介绍

    通过Excel等电子表格工具对映射文件数据进行分析,可以更直观地发现哪些函数或变量占用了过多的空间,并对它们进行优化。例如,如果某个函数仅用于处理特定数据类型,就可尝试替换为更小的版本。在有特定预期值时,...

    结构方程中软件操作过程.pptx

    MI方法与单一填补相反,它使用随机抽样规则填充缺失值,然后基于多个填补版本构建模型,最终合并参数估计。LISREL 8.7.2的MI功能有限,但其他软件如SAS提供了更全面的MI支持。 4. **SAS软件的应用**: SAS是一个...

    2021-2022计算机二级等级考试试题及答案No.18375.docx

    这样可以将整个文档的内容嵌入到当前文档的指定位置,从而实现文档的合并。这种方式非常适合需要整合多个文档内容的情况。 ### 5. Model1架构中的请求分派 Model1架构通常指的是早期基于Java的Web应用程序架构模式...

    2021-2022计算机二级等级考试试题及答案No.13101.docx

    `UNION`:用于合并两个或多个`SELECT`语句的结果集,自动去除重复记录。 - B. `DISTINCT`:用于去除`SELECT`语句结果中的重复记录。 - C. `LIMIT`:限制查询结果的数量。 - D. `REMOVE`:SQL语句中不存在该...

    Datacamp

    2. **Python数据处理库**:学习如何使用Pandas库进行数据清洗和预处理,包括数据读取(如CSV、Excel文件)、数据结构DataFrame的操作(选择、过滤、排序、合并、重塑)以及缺失值处理。 3. **NumPy与SciPy**:了解...

    14计算机应用基础.docx

    - **知识点**: 页面视图模式是Word中的一种视图方式,它可以显示文档的完整页面布局,包括页眉、页脚、边距等,非常适合预览最终打印效果。 20. **软硬磁盘的输入输出功能** - **知识点**: 软硬磁盘及其驱动器是...

    数据分析的一些方法.docx

    数据分析是一个广泛的领域,涉及从数据收集、预处理、分析到最终结果的可视化等步骤。掌握这些步骤中的关键技术和方法是进行有效数据分析的基础。 ##### 1. 了解数据类型 - **定类(分类)数据**:这种数据类型的...

    一个专业搜索公司关于lucene+solar资料(1)

    - 需要考虑初始质心的选择对最终结果的影响。 **5.9 语义搜索** - **5.9.1 语义搜索的概念** - 语义搜索是指根据用户的意图和上下文理解查询语句。 - 有助于提高搜索结果的相关性和满意度。 **5.10 跨语言搜索...

    项目3

    学习如何读取数据(如CSV、Excel文件),进行数据筛选、排序、合并、分组和透视表操作,以及如何使用Pandas进行缺失值处理和数据转换。 5. **Matplotlib和Seaborn**:这两个库用于数据可视化。掌握如何绘制各种图表...

Global site tag (gtag.js) - Google Analytics