在java中对excel进行导出与数据读取-Apache POI入门

2 篇文章 0 订阅
Apache POI是Java中用于处理MS Office文件的开源库,尤其擅长Excel。本文介绍了POI的基本概念、组件以及在Java中使用POI操作Excel的步骤,包括下载、导入库和实现数据的写入与读取。
摘要由CSDN通过智能技术生成

一、POI是什么?

Apache POI是Apache软件基金会提供的100%开源库。大多数中小规模的应用程序开发主要依赖于Apache POI(HSSF+ XSSF)。它支持Excel 库的所有基本功能; 然而,呈现和文本提取是它的主要特点。

Apache POI是一种流行的API,它允许程序员使用Java程序创建,修改和显示MS Office文件。这由Apache软件基金会开发使用Java分布式设计或修改Microsoft Office文件的开源库。它包含类和方法对用户输入数据或文件到MS Office文档进行解码。

二、Apache POI组件:
Apache POI包含类和方法,来将MS Office所有OLE 2文档复合。此API组件的列表如下。
POIFS (较差混淆技术实现文件系统) : 此组件是所有其他POI元件的基本因素。它被用来明确地读取不同的文件。
HSSF (可怕的电子表格格式) : 它被用来读取和写入MS-Excel文件的xls格式。
XSSF (XML格式) : 它是用于MS-Excel中XLSX文件格式。
HPSF (可怕的属性设置格式) : 它用来提取MS-Office文件属性设置。
HWPF (可怕的字处理器格式) : 它是用来读取和写入MS-Word的文档扩展名的文件。
XWPF (XML字处理器格式) : 它是用来读取和写入MS-Word的docx扩展名的文件。
HSLF (可怕的幻灯片版式格式) : 它是用于读取,创建和编辑PowerPoint演示文稿。
HDGF (可怕的图表格式) : 它包含类和方法为MS-Visio的二进制文件。
HPBF (可怕的出版商格式) : 它被用来读取和写入MS-Publisher文件。

项目主要使用Java对 Excel文件完成工作过程,因此,我们仅需要HSSF和XSSF,一般我们用XSSF就足够了。

三、使用步骤:

1.下载:https://poi.apache.org/ 



现在最新的是3.17,我们下载此版本

下载完解压 目录结构如下:


2.导包(本次我们以java工程为例,不使用maven)


我们引入这五个包,

(1)commons-collections4-4.1.jar包在 lib目录下


(2)poi-3.17、poi-ooxml-3.17、poi-ooxml-schemas-3.17


(3)xmlbeans-2.6.0包在ooxml-lib目录下


3.实现将数据写入excel当中,本次将使用junit测试

public void test01() throws IOException{
		
	XSSFWorkbook workbook = new XSSFWorkbook();
        //新建工作表,表名为:左下角工作表名字
        XSSFSheet sheet = workbook.createSheet("左下角工作表名字");
        //创建行,行号作为参数传递给createRow()方法,第一行从0开始计算
        XSSFRow row = sheet.createRow(0);
        //创建单元格,row已经确定了行号,列号作为参数传递给createCell(),第一列从0开始计算
        XSSFCell cell = row.createCell(1);
        //设置单元格的值,即B1的值(第一行,第二列) 值为:工作表内容
        cell.setCellValue("工作表内容");
        //将工作簿输出到磁盘中 路径为 E盘,文件名称为 HelloPOI.xlsx
        FileOutputStream fos = new FileOutputStream(new File("E:\\HelloPOI.xlsx"));
        workbook.write(fos);
        workbook.close();
        fos.close();
}


(4)实现将数据从excel当中读入,本次将使用junit测试

	public void test02() throws IOException{		
	    //创建输入流
            FileInputStream fis = new FileInputStream(new File("E:\\HelloPOI.xlsx"));
            //通过构造函数传参
            XSSFWorkbook workbook = new XSSFWorkbook(fis);
            //获取工作表
            XSSFSheet sheet = workbook.getSheetAt(0);
            //获取行,行号作为参数传递给getRow方法,第一行从0开始计算
            XSSFRow row = sheet.getRow(0);
            //获取单元格,row已经确定了行号,列号作为参数传递给getCell,第一列从0开始计算
            XSSFCell cell = row.getCell(1);
            //设置单元格的值,即B1的值(第一行,第二列)
            String cellValue = cell.getStringCellValue();
            System.out.println("第一行第二列的值是:"+cellValue);
            workbook.close();
            fis.close();
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值