java使用POI操作表格实例

  1. 这两个都是用来操作Excel的,POI是Apache的产品,easyExcel是阿里的产品,都是IO处理组件。

应用场景:把数据导出到Excel,或者吧Excel数据录入到数据库

这两个对比呢?POI是比较原生的,但是缺点就是内存消耗比较大,当Excel文件过大时有可能造成内存溢出,easyExcel则对POI进行了优化,解决了性能方面的问题。

  1. POI的写操作

下载了相关的jar包后,就可以进行操作了。

  1. 首先需要创建一个工作表,也就是Excel文件。
    //1.创建一个工作簿
    Workbook workbook = new HSSFWorkbook();

     

  2. 然后就需要创建一个sheet表。
    //2.创建一个工作表
    Sheet sheet = workbook.createSheet("何夜息");

     

  3. 在工作表上创建一个行
    Row row = sheet.createRow(0);//0代表行号

     

  4. 创建一个单元格
    //4.创建一个单元格
    Cell cell = row.createCell(0);
    Cell cell2 = row.createCell(1);//第二列,依次类推

     

  5. 在单元格中填写数据 
    //5.在单元格中填写数据
    cell1.setCellValue("第一行第一列的数据");
    cell2.setCellValue("第一行第二列的数据");

     

  6. 生成一张表(IO流)
    FileOutputStream fileOutputStream =new FileOutputStream("E:\\source\\WebWork\\JSP_MVC2\\s rc\\pro\\yunyuan\\service"+"test03.xls");

     

  7. 把文件IO流写入工作簿
    workbook.write(fileOutputStream);

     

  8. 关闭IO流
    fileOutputStream.close();

    调用方法就能生成成功了!

    打开文件可以看到写入成功了

    完整代码如下:

    package pro.yunyuan.service;
    
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    
    import java.io.FileOutputStream;
    
    public class POITest
    {
        public void WriteData() throws Exception
        {
            //1.创建一个工作簿
            Workbook workbook = new HSSFWorkbook();
            //2.创建一个工作表
            Sheet sheet = workbook.createSheet("何夜息");
            //3.创建一个行
            Row row = sheet.createRow(0);
            //4.创建一个单元格
            Cell cell1 = row.createCell(0);
            Cell cell2 = row.createCell(1);//第二列,依次类推
    
            //5.在单元格中填写数据
            cell1.setCellValue("第一行第一列的数据");
            cell2.setCellValue("第一行第二列的数据");
    
            //6.生成表格
            FileOutputStream fileOutputStream = new FileOutputStream("E:\\source\\WebWork\\JSP_MVC2\\src\\pro\\yunyuan\\service"+"test03.xls");
    
            //把文件io写入工作簿
            workbook.write(fileOutputStream);
    
            //关闭io流
            fileOutputStream.close();
            System.out.println("文件生成成功");
        }
    }

 

注意:03版本使用HSSFWorkbook,但是只能支持65536行,当需要录入大数据时,需要使用07版本的,代码不变,只要把HSSFWorkbook改为XSSFWorkbook,同时后缀改为xlsx就行了。

这两者的区别就是:03版本写入速度比07要快,但是行数有限。

为了让07版的在输入几百万行数据是,为了提高速度,就有了XSSFWorkbook的升级版,也就是提供了新的接口,就是SXSSFWorkbook,这是一个优化的版本,能够写入大数据,同时速度更快。但是这个会产生临时文件哦,需要清除临时文件。

  1. POI读操作
  • 首先需要获取文件的输入流
FileInputStream fileInputStream = new FileInputStream("E:\\test.xls");
  • 通过获取文件流创建工作簿
Workbook workbook = new HSSFWorkbook(fileInputStream);
  • 然后就使用get进行如果写一下的操作
Sheet sheet = workbook.getSheetAt(0);
Row row = sheet.getRow(0);
Cell cell = row.getCell(0);
System.out.println(cell.getStringCellValue());

需要注意的是:因为表格的数据类型是不一样的,所以需要用不同的方法去获取,类似于获取数据库记录一样,需要用不同的数据类型去接收。

int cellConut = rowTitle.getPhysicalNumberOfCells();//获取当前行有数据的列

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值