zoukankan      html  css  js  c++  java
  • 读取指定excel,修改并某个值并另存到指定路径

    HSSFWorkBook是解析excel2007以前的版本(xls)
    之后的版本使用XSSFWrokBook(xlsx)

    附:处理excel2007之后的版本代码:

    package gbyp.autoQuery.action;
    
    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.io.OutputStream;
    import java.nio.channels.FileChannel;
    import java.util.Date;
    import java.util.Iterator;
    
    import org.apache.poi.hssf.extractor.ExcelExtractor;
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFCellStyle;
    import org.apache.poi.hssf.usermodel.HSSFDataFormat;
    import org.apache.poi.hssf.usermodel.HSSFFont;
    import org.apache.poi.hssf.usermodel.HSSFHyperlink;
    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.HSSFColor;
    import org.apache.poi.openxml4j.opc.OPCPackage;
    import org.apache.poi.poifs.filesystem.POIFSFileSystem;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.util.CellRangeAddress;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    
    import xsf.IContextDictionary;
    import xsf.data.DBManager;
    import xsf.data.DataRow;
    import xsf.data.DataTable;
    import xsf.data.Sql;
    import xsf.web.HttpContext;
    import xsf.web.IAction;
    
    public class ExcelExport {
    
        public static void main(String[] args) {
            ExcelExport ee = new ExcelExport();
            ee.writeExcel2();
        }
    
        public void writeExcel2() {
            // 声明excel对象
            XSSFWorkbook wb = null;
            // 声明poi流
            // POIFSFileSystem fs=null;
            // 写读取的文件路径
            String path = "E:/需要完善的项目清单.xlsx";
            try {
    
                // 创建文件流 创建excell对象
                wb = new XSSFWorkbook(new FileInputStream(path));
    
                // 获得工作薄, 得到工作表
                XSSFSheet sheet = wb.getSheetAt(0);
    
                boolean isOne = true;
                for (Iterator<Row> iter = sheet.rowIterator(); iter.hasNext();) {
                    // 得到行
                    Row row = iter.next();
                    // 迭代列
                    // 循环每一行的所有列
                    int i = 0;
                    for (Iterator<Cell> cellIter = row.cellIterator(); cellIter
                            .hasNext();) {
                        // 得到列对象
                        Cell cell = cellIter.next();
                        if (i == 1) {
                            String content = cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC ? cell
                                    .getNumericCellValue() + ""
                                    : cell.getStringCellValue();
                            if (!content.equals("项目名称")) {
                                //数据库取值并赋值
                                cell.setCellValue("****项目");
                            }
                        }
    
                        i++;
                    }
                    if (isOne) {
                        isOne = false;
                    }
                }
    
                String path2 = "E:/需要完善的项目清单2.xlsx";
                // 创建输出流
                OutputStream out = new FileOutputStream(path2);
                // 将数据写入文件
                wb.write(out);
                // 关闭文件
                out.close();
    
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    View Code

    附:处理excel2007之前版本代码:

    package gbyp.autoQuery.action;
    
    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.io.OutputStream;
    import java.nio.channels.FileChannel;
    import java.util.Date;
    import java.util.Iterator;
    import org.apache.poi.hssf.extractor.ExcelExtractor;
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFCellStyle;
    import org.apache.poi.hssf.usermodel.HSSFDataFormat;
    import org.apache.poi.hssf.usermodel.HSSFFont;
    import org.apache.poi.hssf.usermodel.HSSFHyperlink;
    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.HSSFColor;
    import org.apache.poi.poifs.filesystem.POIFSFileSystem;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.util.CellRangeAddress;
    
    import xsf.IContextDictionary;
    import xsf.data.DBManager;
    import xsf.data.DataRow;
    import xsf.data.DataTable;
    import xsf.data.Sql;
    import xsf.web.HttpContext;
    import xsf.web.IAction;
    
    public class ExcelExport {
    
        public static void main(String[] args) {
            ExcelExport ee = new ExcelExport();
            ee.writeExcel2();
        }
    
        public void writeExcel2() {
            // 声明excel对象
            HSSFWorkbook wb = null;
            // 声明poi流
            POIFSFileSystem fs = null;
            // 写读取的文件路径
            String path = "E:/需要完善的项目清单.xls";
            try {
    
                // 设置要读取的文件路径
                // 创建文件流
                fs = new POIFSFileSystem(new FileInputStream(path));
    
                // HSSFWorkBook相当于一个excel文件,HSSFWorkBook是解析excel2007以前的版本(xls)
                // 之后的版本使用XSSFWrokBook(xlsx)
                // 创建excell对象
                wb = new HSSFWorkbook(fs);
    
                // 获得工作薄
                // 得到工作表
                HSSFSheet sheet = wb.getSheetAt(0);
    
                boolean isOne = true;
    
                for (Iterator<Row> iter = sheet.rowIterator(); iter.hasNext();) {
                    // 得到行
                    Row row = iter.next();
                    // 迭代列
                    // 循环每一行的所有列
                    int i = 0;
                    for (Iterator<Cell> cellIter = row.cellIterator(); cellIter.hasNext();) {
                        // 得到列对象
                        Cell cell = cellIter.next();
                        if (i == 1) {
                            String content = cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC ? cell.getNumericCellValue() + "": cell.getStringCellValue();
                            if(!content.equals("项目名称")){
                                cell.setCellValue("****项目");
                            }
                        }
    
                        i++;
                    }
                    if (isOne) {
    
                        isOne = false;
                    }
                }
    
                String path2 = "E:/需要完善的项目清单2.xls";
                // 创建输出流
                OutputStream out = new FileOutputStream(path2);
                // 将数据写入文件
                wb.write(out);
                // 关闭文件
                out.close();
    
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
    }
    View Code
    你以后的气质里,藏着你走过的路,读过的书和爱过的人。 ​​​
  • 相关阅读:
    Silverlight实用窍门系列:29.Silverlight碰撞测试、检测自定义控件碰撞,雷达扫描图之扫描雷达点状态【附带源码实例】
    Silverlight实用窍门系列:36.Silverlight中播放视频和打印文档【附带源码实例】
    Silverlight实用窍门系列:41.Silverlight中调用麦克风模拟录音机设备,存储为WAV音频【附带实例源码】
    Silverlight 5 beta新特性探索系列:7.结合上层元素属性绑定和Style Setter上的绑定
    Silverlight实用窍门系列:35.细解Silverlight冒泡路由事件和注册冒泡路由事件【附带实例源码】
    Silverlight实用窍门系列:40.Silverlight中捕捉视频,截图保存到本地【附带实例源码】
    Silverlight实用窍门系列:34.Silverlight中不得不了解使用的依赖属性【附带源码实例】
    Silverlight 5 beta新特性探索系列:1.安装Silverlight 5 beta环境以及OOB模式下Silverlight 5 多窗口支持
    Silverlight实用窍门系列:26.Silverlight多线程技术ThreadPool的使用【附带源码实例】
    Silverlight实用窍门系列:32.WebClient上传String、下载String、上传Stream流、下载Stream流【附带源码实例】
  • 原文地址:https://www.cnblogs.com/Sophias/p/7157519.html
Copyright © 2011-2022 走看看