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

版权声明:博主为初学者,大家一起交流学习!让我们一起进步! https://blog.csdn.net/YuanMxy/article/details/80116919

一、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();
	}

猜你喜欢

转载自blog.csdn.net/YuanMxy/article/details/80116919