• 【JAVA】使用Aphache poi操作EXCEL 笔记


    1 下载poi,地址

    http://poi.apache.org/ 

    选择3.9版本。

    2

    刚开始尝试 把poi.jar放在D:Program Filesjavajdk1.6.0_20lib(不管用。删除)

    若你的是web Project工程,就直接把poi.jar包复制粘贴到webroot的web-inf下面的lib文件夹里面;
    若你的是java Project工程,就打开盖工程的属性(Properties)找到他的java build path然后有个Libraries选项卡在右侧可通过Add jars来添加放置在工程里面的poi.jar包,如果你的这个poi.jar包不是放在工程中的,可以通过add external jars来添加外部jar包

    3 创建1个EXCEL文件。

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.List;
    
    
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    
    
    public class PoiMain {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            try {
                // 创建一个Excel文件
                HSSFWorkbook wb = new HSSFWorkbook();
                String path = "D:\Workspace\TestPOI\a.xls";
                FileOutputStream fileOut = new FileOutputStream(new File(path));
                wb.write(fileOut);
                fileOut.close();
            } catch (Exception e) {
                // TODO: handle exception
            }
    
        }
    
    }
    View Code

    包结构

     4 创建一个Excle,并写入各种格式的内容

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    
    import org.apache.poi.hssf.usermodel.*;//Excel所有
    
    
    public class PoiMain {
    
        /**
         * @param args
         * 创建一个xls文件
         * 用到org.apache.poi.hssf.usermodel.HSSFWorkbook;//Excel的文档对象
         * 主程序,唯一程序,排他
         * @作者 小白
         */
    //    public static void main(String[] args) {
    //        try {
    //            // 创建一个Excel文件
    //            HSSFWorkbook wb = new HSSFWorkbook();
    //            String path = "D:\Workspace\TestPOI\a.xls";
    //            FileOutputStream fileOut = new FileOutputStream(new File(path));
    //            wb.write(fileOut);
    //            fileOut.close();
    //        } catch (Exception e) {
    //            // TODO: handle exception
    //        }
    //
    //    }
        
        
        
        
        /**
         * @param args
         * 创建一个xls文件
         * 用到org.apache.poi.hssf.usermodel.*;//Excel所有
         * 主程序,唯一程序,排他
         */
        public static void main(String[] args) throws IOException{
            try {
                HSSFWorkbook wb = new HSSFWorkbook();    //建立新HSSFWorkbook对象
                HSSFSheet sheet = wb.createSheet("new sheet");  //建立新的sheet对象
                
                //第0行
                HSSFRow row = sheet.createRow((short)0);
                //在sheet里创建一行,参数为行号(第一行,此处可想象成数组)
                HSSFCell cell = row.createCell(0);                
                //在row里建立新cell(单元格),参数为列号(第一列)
                cell.setCellValue(1)   ;//设置cell的整数类型的值            
                row.createCell(1).setCellValue(1.2);     //设置cell浮点类型的值
                row.createCell(2).setCellValue("haha");   //设置cell字符类型的值
                row.createCell(3).setCellValue(true);    //设置cell布尔类型的值 
                
                HSSFCellStyle cellStyle = wb.createCellStyle(); //建立新的cell样式
                HSSFDataFormat format= wb.createDataFormat();        
                cellStyle.setDataFormat(format.getFormat("yyyy年mm月d日 hh:mm:ss"));//这两行是日期格式的重点            
                //设置cell样式为定制的日期格式
                HSSFCell dCell =row.createCell(4);
                dCell.setCellValue(new Date());            //设置cell为日期类型的值
                dCell.setCellStyle(cellStyle);              //设置该cell日期的显示格式
                
            
                
                
                HSSFCell csCell =row.createCell(5);
    //            csCell.setEncoding(HSSFCell.ENCODING_UTF_16);
                
                //设置cell编码解决中文高位字节截断
                csCell.setCellValue("这是中文的测试"); //设置中西文结合字符串
                
                row.createCell(6).setCellType(HSSFCell.CELL_TYPE_ERROR);
                //建立错误cell
                
                //第1行
                HSSFRow row1 = sheet.createRow(1);
                row1.createCell(0).setCellValue(false);    
                row1.createCell(1).setCellValue(19907);
                row1.createCell(2).setCellValue("中华民国");
                
                
                //创建生成文件
                String path = "D:\Workspace\TestPOI\ab.xls";
                FileOutputStream fileOut = new FileOutputStream(new File(path));            
                wb.write(fileOut);
                fileOut.close();
    
            } catch (Exception e) {
                // TODO: handle exception
                
            }
    
        }
    
    }
    View Code

    包结构

    表内容

     5 把刚才创建的东东读出来

    为了方便主函数操作,把读写类和测试类分开了

    包结构:

    主类 PoiMain.java

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    
    import org.apache.poi.hssf.usermodel.*;//Excel所有
    
    
    public class PoiMain {
    
        /**
         * @param args
         * 创建一个xls文件
         * 用到org.apache.poi.hssf.usermodel.HSSFWorkbook;//Excel的文档对象
         * 主程序,唯一程序,排他
         * @作者 小白
         */
    //    public static void main(String[] args) {
    //        try {
    //            // 创建一个Excel文件
    //            HSSFWorkbook wb = new HSSFWorkbook();
    //            String path = "D:\Workspace\TestPOI\a.xls";
    //            FileOutputStream fileOut = new FileOutputStream(new File(path));
    //            wb.write(fileOut);
    //            fileOut.close();
    //        } catch (Exception e) {
    //            // TODO: handle exception
    //        }
    //
    //    }
        
        
        
        
        /**
         * @param args
         * 创建一个xls文件
         * 用到org.apache.poi.hssf.usermodel.*;//Excel所有
         * 主程序,唯一程序,排他
         */
        public static void main(String[] args) throws IOException{
            
            //创建Excel
    //        CreatExcelTest cTest = new CreatExcelTest();
    //        cTest.creatExcel();
            
            //读取Excel
            GetVlueTest gTest = new GetVlueTest();
            gTest.getvalue();
            
    //        TestPrint testPrint = new TestPrint();
    //        testPrint.TestPrint();
    
        }
    
    }
    View Code

    创建Excel的类 CreatExcelTest.java

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    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.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    public class CreatExcelTest {
    
        public static void creatExcel(){
            try {
                HSSFWorkbook wb = new HSSFWorkbook();    //建立新HSSFWorkbook对象
                HSSFSheet sheet = wb.createSheet("new sheet");  //建立新的sheet对象
                
                //第0行
                HSSFRow row = sheet.createRow((short)0);
                //在sheet里创建一行,参数为行号(第一行,此处可想象成数组)
                HSSFCell cell = row.createCell(0);                
                //在row里建立新cell(单元格),参数为列号(第一列)
                cell.setCellValue(1)   ;//设置cell的整数类型的值            
                row.createCell(1).setCellValue(1.2);     //设置cell浮点类型的值
                row.createCell(2).setCellValue("haha");   //设置cell字符类型的值
                row.createCell(3).setCellValue(true);    //设置cell布尔类型的值 
                
                HSSFCellStyle cellStyle = wb.createCellStyle(); //建立新的cell样式
                HSSFDataFormat format= wb.createDataFormat();        
                cellStyle.setDataFormat(format.getFormat("yyyy年mm月d日 hh:mm:ss"));//这两行是日期格式的重点            
                //设置cell样式为定制的日期格式
                HSSFCell dCell =row.createCell(4);
                dCell.setCellValue(new Date());            //设置cell为日期类型的值
                dCell.setCellStyle(cellStyle);              //设置该cell日期的显示格式
                
            
                
                
                HSSFCell csCell =row.createCell(5);
    //            csCell.setEncoding(HSSFCell.ENCODING_UTF_16);
                
                //设置cell编码解决中文高位字节截断
                csCell.setCellValue("这是中文的测试"); //设置中西文结合字符串
                
                row.createCell(6).setCellType(HSSFCell.CELL_TYPE_ERROR);
                //建立错误cell
                
                //第1行
                HSSFRow row1 = sheet.createRow(1);
                row1.createCell(0).setCellValue(false);    
                row1.createCell(1).setCellValue(19907);
                row1.createCell(2).setCellValue("中华民国a ");
                
                
                //创建生成文件
                String path = "D:\Workspace\TestPOI\abcd.xls";
                FileOutputStream fileOut = new FileOutputStream(new File(path));            
                wb.write(fileOut);
                fileOut.close();
    
            } catch (Exception e) {
                // TODO: handle exception
                
            }
        }
    
    }
    View Code

    读取Excel的类,读取出来的内容打印在控制台了。

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    import javax.tools.JavaFileObject.Kind;
    
    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.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    
    public class GetVlueTest {
        
    public static void getvalue(){
        
        try {
            
            
            String filePath = "D:\Workspace\TestPOI\b.xls";
            HSSFWorkbook hssfWorkbook = new HSSFWorkbook(new FileInputStream(filePath));
            HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(0);
            int i = hssfSheet.getLastRowNum();//最后一行行标,比行数小1
        
            for(int k=0; k<=i;k++){
            
                
                
                int m = hssfSheet.getRow(k).getLastCellNum();//获取列数,比最后一列列标大1
                
                for(int j=0; j<m;j++)
                    {
                       hssfSheet.getRow(k).getCell(j).setCellType(HSSFCell.CELL_TYPE_STRING);//为了打印输出,强制把不是字符串的东东转换成字符串
                       System.out.println(hssfSheet.getRow(k).getCell(j).getStringCellValue());            
                    }
                
            }
                
                
        
    
        } catch (Exception e) {
            // TODO: handle exception
            
        }
        
        
    }
    
    }
    View Code
    
    
  • 相关阅读:
    vue-element-admin项目install出现的问题
    关于html5 Notification桌面通知无法在谷歌浏览器显示的问题
    C#调用存储过程执行缓慢,但在数据库中执行却很快的问题
    IdnentiyServer-使用客户端凭据访问API
    IdentityServer开题篇
    IdentityServer4客户端JWT解密实现(基于.net4.0)
    iis访问网络路径映射问题(UNC share)
    .net core部署在iis上
    git blame 查找修改者
    代码管理工具-将项目文件打成tar包,并且排除.git目录
  • 原文地址:https://www.cnblogs.com/zhugexiaobei/p/3268158.html
Copyright © 2020-2023  润新知