读取xlsx文件的内容输入到xls文件中
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(); } } }