java Poi基础(一) |
您所在的位置:网站首页 › pois是什么病 › java Poi基础(一) |
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 下载点击这个 首先要将下载好的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 |