zoukankan      html  css  js  c++  java
  • 读取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();
    		}
    		
    	}
    	
    }
    

      

  • 相关阅读:
    MATLAB 简单多边形的核
    MATLAB Moravec算子
    MATLAB Sepia Tone滤镜
    MATLAB 异或分类
    MATLAB 神经网络分类
    MATLAB 地图上画经纬度
    MATLAB 最小二乘多项式拟合
    MATLAB 对应点集配准的四元数法
    MATLAB 高斯牛顿法最优化
    MATLAB Levenberg-Marquardt法最优化
  • 原文地址:https://www.cnblogs.com/xianz666/p/13749226.html
Copyright © 2011-2022 走看看