package com.cn.peitest.excel;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TreeMap; import org.apache.poi.hssf.usermodel.HSSFCell;
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.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class XlsxToXlsxTransformUtil { /*
*
*
* 读取xlsx文件的内容输入到xls文件中
*
* */ public static void main(String[] args) throws IOException { //输入xlse格式
POIFSFileSystem fs = null;//文件输入流
XSSFWorkbook xwb = null;//设置工作簿
XSSFSheet xsheet = null;//设置表单
XSSFRow xrow = null;//获得行
XSSFCell xcell = null;//行列单元格的值
//输出xls格式
XSSFWorkbook hwb = new XSSFWorkbook();
XSSFSheet hsheet =null;// wb.createSheet("sheet1");
XSSFRow hrow = null;//sheet.createRow(0);
XSSFCell hcell=null;//row0.createCell(0);
//cell0.setCellValue("0000"); SimpleDateFormat df = new SimpleDateFormat("yyyy_MM_dd_HH_mm");//设置日期格式
System.out.println(df.format(new Date()));// new Date()为获取当前系统时间 File inf=new File("C:\\Users\\pei\\Desktop\\新建 XLS 工作表.xls");
File ouf=new File("C:\\Users\\pei\\Desktop\\HYD test 1_0_2 tm="+df.format(new Date())+".xlsx"); boolean sheetflag=true;
int sheetid=0; boolean rowflag=true;
int rowid =0;
try {
FileInputStream fis = new FileInputStream(inf);//文件输入流
xwb=new XSSFWorkbook(fis);//设置工作簿
System.out.println("表单数="+xwb.getNumberOfSheets());//获取工作表单数目
while(sheetflag){
if(sheetid==xwb.getNumberOfSheets()){break;}
xsheet=xwb.getSheetAt(sheetid);//设置从第几个表单开始读取
if(xsheet==null){
sheetflag=false;
}else{
hsheet=hwb.createSheet(xsheet.getSheetName());//新的工作簿创建工作表单数
sheetid++;
rowid=0;
rowflag=true;
while(rowflag){
hrow=hsheet.createRow(rowid);//新的工作簿表单创建行数
xrow=xsheet.getRow(rowid);//xlsx获得行
if(xrow==null){
rowflag=false;
}else{
rowid++;
for(int c=0;c<30;c++){ xcell=xrow.getCell(c);//xlsx获得行列的内容
if(xcell!=null&&xcell.toString().length()>0){
String a1=xcell.toString().replaceAll(".00", "");//.00替换为空字符串
String a2=a1.replaceAll(".0", "");//.0替换为空字符串
String data=a2.replaceAll("O", "0");//o替换为0
hrow.createCell(c).setCellValue(data);//hrow.createCell(c)创建行列单元格,.setCellValue(data)调用xls的方法将内容写入单元格
}
}
}
}
}
} //FileOutputStream output=new FileOutputStream(ouf);
//xwb.write(output);
//System.out.println("导出结束");
//output.close();
} catch (Exception e) {
e.printStackTrace();
}
finally{
System.out.println("处理结束。。。。等待导出完成");
FileOutputStream output=new FileOutputStream(ouf);
hwb.write(output);
System.out.println("导出结束");
output.close();
} } }

  

最新文章

  1. ASP.NET MVC 应用,站点发布到本地IIS
  2. 【python】3.x,string与bytes的区别(文本,二进制数据)
  3. Android ViewPager使用详解
  4. poj 1986
  5. char[] 操作
  6. 异步陷阱之IO
  7. Maven下从HDFS文件系统读取文件内容
  8. Jmeter常用功能详解
  9. PAT1011:World Cup Betting
  10. 8.Odoo产品分析 (二) – 商业板块(3) –CRM(2)
  11. tomcat8.5配置redis实现session共享(tomcat-redis-session-manager-master)
  12. [Python学习]Python学习资料汇总
  13. Javaweb开发请求
  14. 渐变(Gradients)
  15. 让IIS 7 如同IIS 8 第一次请求不变慢
  16. 从api接口获取数据-okhttp
  17. springboot中使用druid和监控配置
  18. Alpha版本冲刺(五)
  19. Postgresql 用户管理
  20. 20145226 《Java程序设计》第4周学习总结

热门文章

  1. 单例模式与它的七种java实现方式
  2. 本人的CSDN博客
  3. 【2020.12.01提高组模拟】卡特兰数(catalan)
  4. Spring Boot系列:七、 实现Mybatis多数据源切换
  5. 解决 JPA 插入 MySQL 时间与实际时间差 13 个小时问题
  6. navicat连接阿里云ESC里的数据库
  7. PyQt(Python+Qt)学习随笔:MoviePy视频转GIF动图相关方法介绍
  8. PyQt(Python+Qt)学习随笔:使用QColorDialog.getColor交互设置部件的颜色
  9. 第15.22节 PyQt(Python+Qt)入门学习:Model/View架构详解
  10. PyQt学习遇到的问题:重写notify发送的消息为什么首先给了一个QWindow对象?