博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poi读写Excel文件
阅读量:5973 次
发布时间:2019-06-19

本文共 2540 字,大约阅读时间需要 8 分钟。

  • jxl 只有excel基本的操作,代码操作比较方便,一般使用jxl就够了,对图片支持较好
  • poi功能比jxl强大但是比较吃内存,支持计算公式

       关于jxl具体可以参考   

package test_poi;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.Date;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.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;import org.junit.Test;public class TestPoi {    @Test    public void createWorkBook() throws Exception {        Workbook wb = new HSSFWorkbook(); // 创建工作簿        Sheet sheet = wb.createSheet("first sheet"); // 创建工作表并且定义工作表名称        Row createRow = sheet.createRow(0); // 定义第一行        // Row createRow2 = sheet.createRow(1);// 定义第二行        createRow.createCell(0).setCellValue("hehe"); // 第一行第一个列,并赋值        for (int i = 0; i < 10; i++) {            createRow.createCell(i + 1).setCellValue("hehe" + i); // 循环第一行            // createRow2.createCell(i).setCellValue("第二行" + i); // 循环第二行        }        OutputStream fileOut = new FileOutputStream("d:\\poi.xls");// 输出流        wb.createSheet("two");// 创建第二个工作表并定义名称        wb.write(fileOut); // 将文件输出到文件中        fileOut.close(); // 关闭输出流,,    }    @Test    public void readExl() throws Exception {        InputStream is = new FileInputStream("d:\\poi.xls");        POIFSFileSystem fs = new POIFSFileSystem(is);        HSSFWorkbook wb = new HSSFWorkbook(fs);        HSSFSheet sheet = wb.getSheetAt(0);        // 获得总行数,第一行算标题不算在行数内,所以总的行数应该是lastRowNum+1        int lastRowNum = sheet.getLastRowNum();        System.out.println(lastRowNum);        // 直接根据行号获取信息        HSSFRow row = sheet.getRow(0);// 获取第一行(标题)        // 获取当前行总列数        int physicalNumberOfCells = row.getPhysicalNumberOfCells();        System.out.println("标题总列数=" + physicalNumberOfCells);        // 单元格内容格式        int cellType = row.getCell(3).getCellType();// 格式是:                                                    // HSSFCell.CELL_TYPE_STRING...        // 获取不同类型的值        double numericCellValue = row.getCell(0).getNumericCellValue();        boolean booleanCellValue = row.getCell(1).getBooleanCellValue();        Date dateCellValue = row.getCell(2).getDateCellValue();        System.out.println(cellType + "********");    }}

转载于:https://www.cnblogs.com/dashuai01/p/4778017.html

你可能感兴趣的文章
Shell之Sed常用用法
查看>>
Centos下基于Hadoop安装Spark(分布式)
查看>>
mysql开启binlog
查看>>
设置Eclipse编码方式
查看>>
分布式系统唯一ID生成方案汇总【转】
查看>>
并查集hdu1232
查看>>
Mysql 监视工具
查看>>
Linux Namespace系列(09):利用Namespace创建一个简单可用的容器
查看>>
博客搬家了
查看>>
Python中使用ElementTree解析xml
查看>>
jquery 操作iframe、frameset
查看>>
解决vim中不能使用小键盘
查看>>
Eclipse Java @Override 报错
查看>>
linux的日志服务器关于屏蔽一些关键字的方法
查看>>
mysql多实例实例化数据库
查看>>
javascript 操作DOM元素样式
查看>>
HBase 笔记3
查看>>
【Linux】Linux 在线安装yum
查看>>
Atom 编辑器系列视频课程
查看>>
[原][osgearth]osgearthviewer读取earth文件,代码解析(earth文件读取的一帧)
查看>>