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 Compare”的知识点时,我们首先需要理解其核心功能与应用场景,进而深入到下载、安装及使用等环节,最终达到对这款软件全面而深入的掌握。 ### Excel Compare:对比与合并工具 #### 一、Excel ...
- 使用zip压缩格式,能有效降低文件体积,因为zip支持有损和无损压缩算法,可以根据需要选择合适的压缩级别。 - 在处理大量文件时,压缩还能减少文件管理的复杂性,用户只需处理一个zip档案即可。 4. **编程实现*...
对于最终用户,这个工具提供了一种便捷的方式,解决了日常工作中需要合并大量Excel文件的困扰。 要了解和使用这个项目,你可以从其官方仓库下载源代码,根据项目文档进行编译和安装。如果你对编程感兴趣,还可以...
在 Microsoft Excel 中,与表对应的对象是工作表(Sheet 或 Worksheet),与每一个表格方格相对应的对象是单元格区域(range),它能够仅包括一个单元格(cell),也能够由多个单元格合并而成。在 AutoCAD 中,没有...
最终找到车牌区域。 倾斜校正: 本文在针对倾斜角度的图片采取rando算法进行倾斜角度计算,并对倾斜图片进行修正。从而得到水平方向一致的图片。有利于后期的图片分割及图像识别。 字符分割: 将计算得到车牌区域的...
除了压缩功能,一些高级的PDF压缩软件还可能具备其他辅助功能,如PDF合并、PDF拆分、PDF加密、PDF转换(如转换为Word、Excel、图片等格式)以及PDF编辑等。这些功能使得用户在处理PDF文件时更加便捷高效。 在选择...
DataFrame不仅支持常见的统计方法,还能进行数据清洗、合并、重塑等多种操作。另一个关键库NumPy提供了高效的数值计算功能,特别是在多维数组操作上表现出色。Scipy则提供了更高级的数学、科学计算和工程计算功能,...
1. **文件压缩**: 压缩包文件如.zip格式,是将多个文件或文件夹合并成一个单一文件,通过算法减少文件大小,便于传输和存储。这在处理大体积数据时尤其有用。常见的压缩软件有WinRAR和7-Zip。 2. **代码管理**: ...
通过Excel等电子表格工具对映射文件数据进行分析,可以更直观地发现哪些函数或变量占用了过多的空间,并对它们进行优化。例如,如果某个函数仅用于处理特定数据类型,就可尝试替换为更小的版本。在有特定预期值时,...
MI方法与单一填补相反,它使用随机抽样规则填充缺失值,然后基于多个填补版本构建模型,最终合并参数估计。LISREL 8.7.2的MI功能有限,但其他软件如SAS提供了更全面的MI支持。 4. **SAS软件的应用**: SAS是一个...
这样可以将整个文档的内容嵌入到当前文档的指定位置,从而实现文档的合并。这种方式非常适合需要整合多个文档内容的情况。 ### 5. Model1架构中的请求分派 Model1架构通常指的是早期基于Java的Web应用程序架构模式...
`UNION`:用于合并两个或多个`SELECT`语句的结果集,自动去除重复记录。 - B. `DISTINCT`:用于去除`SELECT`语句结果中的重复记录。 - C. `LIMIT`:限制查询结果的数量。 - D. `REMOVE`:SQL语句中不存在该...
2. **Python数据处理库**:学习如何使用Pandas库进行数据清洗和预处理,包括数据读取(如CSV、Excel文件)、数据结构DataFrame的操作(选择、过滤、排序、合并、重塑)以及缺失值处理。 3. **NumPy与SciPy**:了解...
- **知识点**: 页面视图模式是Word中的一种视图方式,它可以显示文档的完整页面布局,包括页眉、页脚、边距等,非常适合预览最终打印效果。 20. **软硬磁盘的输入输出功能** - **知识点**: 软硬磁盘及其驱动器是...
数据分析是一个广泛的领域,涉及从数据收集、预处理、分析到最终结果的可视化等步骤。掌握这些步骤中的关键技术和方法是进行有效数据分析的基础。 ##### 1. 了解数据类型 - **定类(分类)数据**:这种数据类型的...
- 需要考虑初始质心的选择对最终结果的影响。 **5.9 语义搜索** - **5.9.1 语义搜索的概念** - 语义搜索是指根据用户的意图和上下文理解查询语句。 - 有助于提高搜索结果的相关性和满意度。 **5.10 跨语言搜索...
学习如何读取数据(如CSV、Excel文件),进行数据筛选、排序、合并、分组和透视表操作,以及如何使用Pandas进行缺失值处理和数据转换。 5. **Matplotlib和Seaborn**:这两个库用于数据可视化。掌握如何绘制各种图表...