java Poi基础(一)

您所在的位置:网站首页 pois是什么病 java Poi基础(一)

java Poi基础(一)

2024-07-10 12:18| 来源: 网络整理| 查看: 265

1Poi简介: 1.1什么是poi:

Apache POI [1]  是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“简洁版的模糊实现”。

1.2poi结构:

HSSF [1]  - 提供读写Microsoft Excel XLS格式档案的功能。

XSSF [1]  - 提供读写Microsoft Excel OOXML XLSX格式档案的功能。

HWPF [1]  - 提供读写Microsoft Word DOC格式档案的功能。

HSLF [1]  - 提供读写Microsoft PowerPoint格式档案的功能。

HDGF [1]  - 提供读Microsoft Visio格式档案的功能。

HPBF [1]  - 提供读Microsoft Publisher格式档案的功能。

HSMF [1]  - 提供读Microsoft Outlook格式档案的功能。

这些都是poi提供的一些包

1.3:下载地址

这个是最新的jar包,4.0的

https://www.apache.org/dyn/closer.lua/poi/release/bin/poi-bin-4.0.0-20180907.tar.gz

还有源码包的下载

https://www.apache.org/dyn/closer.lua/poi/release/src/poi-src-4.0.0-20180907.tar.gz

下载点击这个

下载点击

2.poi基础 2.1.1新建一个表格

首先要将下载好的jar包,解压将根目录下的所有包,以及将lib目录下的commons-logging-1.2.jar

和junit-4.12.jar以及log4j-1.2.17.jar这三个通用包导入到项目的lib的目录下,poi-4.0.0.jar包是最

重要的。

public static void main(String[] args) throws IOException {//这里将异常上抛方便阅读和理解 /** * 多态实现 * HSSFWorkbook 是对于xls进行操作 */ Workbook wb=new HSSFWorkbook();//新建一个工作簿 /** * 导出所以用到输出流 *参数为输出的地址 */ FileOutputStream fout=new FileOutputStream("E:\\Demo\\poi.xls"); wb.write(fout);//Workbook提供了write的方法 fout.close();//将输出流关闭 } 2.1.2新建sheet页

在新建工作簿的基础上新建sheet页,wb.createSheet() 返回一个Sheet()如果不进行操作不用接收

这里省略了main方法

/** * 多态实现 * HSSFWorkbook 是对于xls进行操作 */ Workbook wb=new HSSFWorkbook();//新建一个工作簿 /** * 导出所以用到输出流 */ FileOutputStream fout=new FileOutputStream("E:\\Demo\\poi.xls"); /** * 有有参和无参数两种 * 参数为sheet页的名字 * 不写参数默认名字为sheet0到n */ Sheet sheet1 = wb.createSheet();//创建一个sheet页 Sheet sheet2 = wb.createSheet("第二个sheet页");//创建第二个sheet页 wb.write(fout); fout.close();//将输出流关闭 2.1.3新建行和列

创建行要在sheet页的基础上,单元格在行的基础上创建,每一行一个行对象Row

对于单元格赋值cell对象setCellValue()就可以,而且行和单元格的创建都从0 开始

列的值可以设置的类型也比较多样 int  double  String boolean  Date 等都是可以的

Workbook wb=new HSSFWorkbook();//新建一个工作簿 FileOutputStream fout=new FileOutputStream("E:\\Demo\\poi.xls"); Sheet sheet= wb.createSheet("第一个sheet页");//创建一个sheet页 Row row=sheet.createRow(0); // 创建一个行 第一行 Cell cell=row.createCell(0); // 创建一个单元格 第1列 /** * 给单元格设置值 *值类型可以为int double String boolean *还有Date等 */ cell.setCellValue(1); row.createCell(1).setCellValue(1.2);//创建第一行第二个单元格 row.createCell(2).setCellValue("这是一个单元格");//创建第一行第三个单元格 row.createCell(3).setCellValue(false);//创建第一行第四个单元格 /** * HSSFCell一些静态常量 * short类型和int类型 */ row.createCell(4).setCellValue(HSSFCell.ENCODING_COMPRESSED_UNICODE); /** * 第二个行 每一行需要一个行对象 * 所以需要保存一个行对象 */ Row row1 = sheet.createRow(1); row1.createCell(0).setCellValue("第二行第一列"); row1.createCell(1).setCellValue(true); row1.createCell(2).setCellValue("第二行第三列"); row1.createCell(3).setCellValue("第二行第四列"); wb.write(fout);//输出 fout.close(); 2.1.4时间格式的单元格

由于很多代码都是重复的也出现了多次我在这,也就不写在笔记里了,只摘取了关键部分

CreationHelper  一个小工具类,使用工作簿创建Workbook getCreationHelper()

CellStyle  单元格的样式类,也是使用Workbook创建createCellStyle()

Row row=sheet.createRow(0); // 创建一个行 第一行 Cell cell=row.createCell(0); // 创建一个单元格 第1列 cell.setCellValue(new Date()); /** * 小工具 * 使用工作簿获取 */ CreationHelper creationHelper=wb.getCreationHelper(); /** * 单元格样式类 * 使用工作簿Workbook创建 */ CellStyle cellStyle=wb.createCellStyle(); /** * 设置时间的显示格式 */ cellStyle.setDataFormat(creationHelper.createDataFormat().getFormat("yyyy-mm-dd :hh:mm:ss")); cell=row.createCell(1);//创建第二列 cell.setCellValue(new Date()); /** * 设置单元格的格式 */ cell.setCellStyle(cellStyle); /** * 第三列和第二列的效果是一样的 */ cell=row.createCell(2);//创建第三列 /** * Calendar 日历类 也可以用来获取时间 */ cell.setCellValue(Calendar.getInstance()); cell.setCellStyle(cellStyle);

剩下的内容将在下面的博客持续更新,有什么问题的地方欢迎大家指正,大家共同进步

剩下的知识大家可以去看https://blog.csdn.net/yjt520557/article/details/83119000里面只是图片没有



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3