package com.ben.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.Region;
public class ExcelUtils {
public static void main(String[] args) throws FileNotFoundException, IOException {
String fromPath = "E:\\temp\\";// excel存放路径
String toPath = "E:\\temp\\";// 保存新EXCEL路径
// 新的excel 文件名
String excelName = "total";
// 创建新的excel
HSSFWorkbook wbCreat = new HSSFWorkbook();
File file = new File(fromPath);
int index=0;
for (File excel : file.listFiles()) {
// 打开已有的excel
String strExcelPath = fromPath + "\\" + excel.getName();
InputStream in = new FileInputStream(strExcelPath);
HSSFWorkbook wb = new HSSFWorkbook(in);
for (int ii = 0; ii < wb.getNumberOfSheets(); ii++) {
HSSFSheet sheet = wb.getSheetAt(ii);
HSSFSheet sheetCreat = wbCreat.createSheet(sheet.getSheetName()+index++);
// 复制源表中的合并单元格
MergerRegion(sheetCreat, sheet);
int firstRow = sheet.getFirstRowNum();
int lastRow = sheet.getLastRowNum();
for (int i = firstRow; i <= lastRow; i++) {
// 创建新建excel Sheet的行
HSSFRow rowCreat = sheetCreat.createRow(i);
// 取得源有excel Sheet的行
HSSFRow row = sheet.getRow(i);
if(row == null){
continue;
}
// 单元格式样
int firstCell = row.getFirstCellNum();
int lastCell = row.getLastCellNum();
for (int j = firstCell; j < lastCell; j++) {
// 自动适应列宽 貌似不起作用
//sheetCreat.autoSizeColumn(j);
System.out.println(row.getCell(j));
rowCreat.createCell(j);
String strVal ="";
if (row.getCell(j)==null) {
}else{
strVal = removeInternalBlank(row.getCell(j).getStringCellValue());
}
rowCreat.getCell(j).setCellValue(strVal);
}
}
}
}
FileOutputStream fileOut = new FileOutputStream(toPath + excelName + ".xls");
wbCreat.write(fileOut);
fileOut.close();
}
/**
* 复制原有sheet的合并单元格到新创建的sheet
*
* @param sheetCreat
* 新创建sheet
* @param sheet
* 原有的sheet
*/
private static void MergerRegion(HSSFSheet sheetCreat, HSSFSheet sheet) {
int sheetMergerCount = sheet.getNumMergedRegions();
for (int i = 0; i < sheetMergerCount; i++) {
Region mergedRegionAt = sheet.getMergedRegionAt(i);
sheetCreat.addMergedRegion(mergedRegionAt);
}
}
/**
* 去除字符串内部空格
*/
public static String removeInternalBlank(String s) {
// System.out.println("bb:" + s);
Pattern p = Pattern.compile("\\s*|\t|\r|\n");
Matcher m = p.matcher(s);
char str[] = s.toCharArray();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < str.length; i++) {
if (str[i] == ' ') {
sb.append(' ');
} else {
break;
}
}
String after = m.replaceAll("");
return sb.toString() + after;
}
}
分享到:
相关推荐
Union操作符是Access中的一个重要功能,能够将多个查询结果合并到一起。在SQL视图中,我们可以使用Union操作符来合并链接的Excel文件。例如,我们可以使用以下SQL语句: ```sql SELECT * FROM [Sheet1$] UNION ...
一个可以将多个EXCEL文件合并到同一个文件EXCEL的宏插件
应用场景:使用pandas把多个相同结构的Excel文件合并为一个。 原始数据: 相关代码: import os import pandas as pd # 将文件读取出来放一个列表里面 pwd = 'test' # 获取文件目录 # 新建列表,存放文件名 ...
合并多个Excel到一个Excel,C#文件代码,IDE为VS2008
标题中的“将多个excel文件合并为一个excel.docx”实际上是指将多个Excel文件合并到一个单一的Excel文件中,而不是创建一个Word文档。这个过程可以通过编写VBA(Visual Basic for Applications)宏来实现,这是一种...
今天,我们将讨论如何合并多个Excel文件的方法。 首先,让我们了解为什么需要合并多个Excel文件。例如,在工作中,我们可能需要每天、每周、每月、每年对某些数据进行统计和分析。如果我们手动复制和粘贴每个表,...
EXCEL 多个文件合并
excel,多个文件合并到一个文件的多个sheet
怎么把100多个EXCEL文件合并成一个?_EXCEL_电脑软件_编程_天涯问答_天涯社区 http://wenda.tianya.cn/question/3604d101e5cb8330
2. 使用进程池技术:进程池技术可以将多个进程合并到一个进程池中,从而减少了系统资源的浪费。我们可以使用编程语言中的进程池库来实现此功能。 3. 使用多线程技术:多线程技术可以使得多个任务并发执行,从而提高...
压缩文件中包括一个包含宏代码的Excel文件Sheet Macros.xls以及其他四个测试文件工作表 1~4。 宏的功能为(1)选中Excel表格中的某些行或列,运行某个Macro,自动根据选中的cells创建新的worksheets,worksheets的...
易语言合并多个Excel文件源码,合并多个Excel文件,取字符代码
在这篇文章中,我们将讨论如何使用 Excel VBA宏将多个工作簿合并到一个工作簿的多个工作表中。该方法可以帮助用户快速地合并多个工作簿,提高工作效率。 方法概述 该方法使用 VBA 宏来实现工作簿的合并。宏将读取...
可以将多个excel文件,合并在一起,节约大量的人力和时间
Q760776.zip 如何利用c#控制台应用程序将多个excel文件合并成一个excel文件 https://ask.csdn.net/questions/760776
Excel多个文件合并、同时删除多个文件指定行、文件拆分的代码
excel合并多个文件成一个文件
在excel中打开宏编辑器,导入这个文件,执行,然后选择多个excel文件,即可将多个excel文件合并为一个文件
合并多个Excel文件
利用Python,将多个excel文件合并为一个文件 思路 利用python xlrd包读取excle文件,然后将文件内容存入一个列表中,再利用xlsxwriter将内容写入到一个新的excel文件中。 完整代码 # -*- coding: utf-8 -*- #将多...