java 实现 excel sheet 拷贝到另一个Excel文件中 poi
public class CopyExcelSheetToAnotherExcelSheet {
public static void main(String[] args) throws FileNotFoundException, IOException {
String fromPath = "D:\\share\\jiemu_new\\";// excel存放路径
String toPath = "c:\\ok\\";// 保存新EXCEL路径
// 新的excel 文件名
String excelName = "节目访问量";
// 创建新的excel
HSSFWorkbook wbCreat = new HSSFWorkbook();
File file = new File(fromPath);
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());
// 复制源表中的合并单元格
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);
// 单元格式样
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;
}
}
转载于:https://www.cnblogs.com/zhang-boke/p/7243605.html
java 实现 excel sheet 拷贝到另一个Excel文件中 poi相关推荐
- python excel sheet个数_python得到一个excel的全部sheet标签值方法
python读取excel莫个页签sheets()行数,并且获取里在线分享等,哪位好心人士对于python操作excel熟练请帮忙解 不要在表达爱时那么无力,却又在表达伤害时如此锋利. 如何返使用xl ...
- python合并excel工作簿_使用Python将多个excel的多个sheet页合并到一个excel
使用Python将多个excel的多个sheet页合并到一个excel ##读取Excel文件 import xlrd ##将文本写入excel文件 import xlsxwriter ##读取exc ...
- 读取指定文件夹里多个excel表,并将所有excel表数据整合到一个excel中
1.找出指定文件夹里的所有文件 #-*- encoding: utf-8 -*-# 找出指定文件夹里的所有文件 import osfilePath = 'C:\\Users\\lzk\\Desktop ...
- java+txt+词语+次数_Java练习2--读取txt文件统计考勤次数并写入一个txt文件中
Java练习2--读取txt文件统计考勤次数并写入一个txt文件中 Java练习2--读取txt文件统计考勤次数并写入一个txt文件中 面向对象的小练习: 文件attendance.txt中的数据为本 ...
- java wav合并_java – 如何将两个wav文件合并/合并到一个wav文件中?
如果直接使用wav文件的字节,则可以在任何编程语言中使用相同的策略.对于这个例子,我假设两个源文件具有相同的比特率/ numchannels并且长度/大小相同. (如果没有,你可以在开始合并之前编辑它 ...
- 如何在另一个JavaScript文件中包含一个JavaScript文件?
JavaScript中是否有类似于CSS中@import的内容,可让您在另一个JavaScript文件中包含一个JavaScript文件? #1楼 而不是在运行时添加,而是使用脚本在上传之前进行串联. ...
- 转:如何调用另一个python文件中的代码
原文地址:https://www.cnblogs.com/jiuyigirl/p/7146223.html 如何调用另一个python文件中的代码 无论我们选择用何种语言进行程序设计时,都不可能只有一 ...
- matlab中将数据导出到Excel表格、.txt、.xml等文件中
本人应用例子 导出效果:第一行为提示,所以在设置表格行数时需要+1,如上图 matlab官网例子 load patients.mat T = table(LastName,Age,Weight,Smo ...
- 把一个文件夹下的所有csv文件合并到一个csv文件中,并添加文件名作为列名
DEAM数据集的标签如图所示,共有1802个csv文件,每首音乐的特征单独存储在一个csv文件中: 现在想要将这些csv文件合并到一个csv文件中,同时用文件名作为列名.用python代码实现如下: ...
最新文章
- ZooKeeper与Eureka对比
- sap和OA之间数值传递2(工程创建)
- MyBatis collection的两种形式——MyBatis学习笔记之九
- 学术会议 | 中国杭州举办——第21届国际语义网大会​ISWC2022 Call for Papers
- 服务器proc文件,特殊文件系统proc
- 网上购物软件的测试计划,网上购物平台购物测试计划书
- 迈足狂奔!铁塔公司:目前北京已建好4400多座大型5G基站
- [20150304]唯一索引与阻塞.txt
- [使用心得]maven2之m2eclipse使用手册之二m2eclipse功能介绍
- CCF201909-4 推荐系统(100分)【模拟】
- 011 使用AOP操作注解
- java调用jrtplib,jrtplib的文档翻译
- 微软漏洞导致SQL注入威胁
- php获取时间戳及对时间戳进行格式化处理
- c5 LR is at 对于空指针的定位
- JAV----------数组操作
- smb+服务器+修复,Microsoft Windows
- 血污夜之仪式秘密巫师实验室收集策略
- 主板有电无法启动_【主板不通电无法开机】主板不通电怎么修_主板通电但是开不了机...
- leetcode阶段总结——分割字符串类型
热门文章
- 多人部件解析--Towards Real World Human Parsing: Multiple-Human Parsing in the Wild
- Linux操作系统选择:Debian or Ubuntu
- git服务器查看用户信息,git 查看当前git用户_新Git用户使用方法
- linux mysql删除root_Linux下误删MySQL的root用户解决方法
- c语言英汉互译编程,用C语言编辑简单英汉互译词典.doc
- 编写里Linux命令解释器,linux基础教程试卷及答案
- C++——auto_ptr与unique_ptr
- 细说接口性能优化的11个小技巧
- Spring Cloud Alibaba 之 RPC 消息:Dubbo 与 Nacos 体系如何协同作业
- c 读取mysql中表中数据_c#读取MySQL数据表中的内容