




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ACCP V4.0POi基础知识 -第五小组 q什么是 POIqPOI的用途q运用 HSSF进行读取 Excel-完成批量上传 q运用 HSSF进行写成 Excelq什么是 POI-是 aptch公司的一个子项目 ,翻译成中文的意思是 ” 兴趣点 ”的意思 ! -POI包括一系列的 API,它们可以操作基于 MicroSoft OLE 2 Compound Document Format的各种格式文件,可以通过这些 API在Java中读写 Excel、 Word等文件。 POI是完全的Java Excel和 Java Word解决方案。 POI子项目包括: POIFS、 HSSF、 HDF、 HPSF Excel的读写子 项 目名 说 明POIFS(POI File System)POIFS是 POI项 目中最早的最基 础 的一个模 块 ,是 Java到 OLE 2 Compound Document Format的接口,支持 读 写功能,所有的其他 项 目都依 赖 与 该项 目。HSSF(Horrible Spreadsheet Format)HSSF是 Java到 Microsoft Excel 97(-2002)文件的接口,支持 读 写功能HWPF(Horrible Word Processing Format)HWPF是 Java到 Microsoft Word 97文件的接口,支持读 写功能,但目前 该 模 块还处 于 刚 开始开 发阶 段,只能 实现 一些 简单 文件的操作,在后 续 版本中,会提供更 强 大的支持HPSF(Horrible Property Set Format)HPSF 是 Java到 OLE 2 Compound Document Format文件的属性 设 置的接口,属性 设 置通常用来 设 置文档的属性( 标题 ,作者,最后修改日期等), 还 可以 设 置用 户 定 义 的属性。 HPSF支持 读 写功能,当前 发 布版本中直支持 读 功能。qPOI的用途-POI就是把 Microsoft的所有格式全都可以转换为 Java可以读写的东西 ;如 :word 的读写,记事本的读写 ,Excel的读写 总之就是操作 M$文件格式的东西,现在对EXCEL比较成熟。 q Excel的读写-HSSF为读取操作提供了两类 API: usermodel和eventusermodel,即 “用户模型 ”和 “事 件 -用户模型 ”。前者很好理解,后者比较抽象,但操作效率要高得多。 usermodel主要有 org.apache.poi.hssf.usermodel和org.apache.poi.hssf.eventusermodel包实现(在 HSSF的早期版本中, org.apache.poi.hssf.eventusermodel属于 eventmodel包)。 usermodel包把 Excel文件映射成我们熟悉的结构,诸如 Workbook、Sheet、 Row、 Cell等,它把整个结构以一组对象的形式保存 在内存之中。 eventusermodel要求用户熟悉文件格式的底层结构,它的操作风格类似于 XML的 SAX API和 AWT的事件模型(这就是eventusermodel名称的起源),要掌握窍门才能用好。另外,eventusermodel的 API只提供读 取文件的功能,也就是说不能用这个API来修改文件。 qExcel的读取-完成批量上传功能 !即把 Excel中的数据写入数据库中去 ! q通过 usermodel读取文件 q 一 用 HSSF的 usermodel读取文件很简单。首先创建一个 InputStream,然后创建一个 HSSFWorkbook: InputStream myxls = new FileInputStream(“workbook.xls“);HSSFWorkbook wb = new HSSFWorkbook(myxls);q 二 有了 HSSFWorkbook实例,接下来就可以提取工作表、工作表的行和列,例如: HSSFSheet sheet = wb.getSheetAt(0); / 第一个工作表HSSFRow row = sheet.getRow(2); / 第三行HSSFCell cell = row.getCell(short)3); / 第四个单元格q 三 面这段代码提取出第一个工作表第三行第四单元格。利用单元格对象可以获得它的值,提取单元格的值时请注意它的类型: if (cell.getCellType() = HSSFCell.CELL_TYPE_STRING) (“单元格是字符串,值是: “ + cell.getStringCellValue(); else if (cell.getCellType() = HSSFCell.CELL_TYPE_NUMERIC) (“单元格是数字,值是: “ + cell.getCellValue(); else () (“单元格的值不是字符串或数值。 “);q注意 ! q如果搞错了数据类型,程序将遇到异常。特别地,用 HSSF处理日期数据要小心。 Excel内部以数值的形式保存日期数据,区别日期数据的唯一办法是通过单元格的格式(如果你曾经在Excel中设置过日期格式,应该明白这是什么意思)。 因此,对于包含日期数据的单元格, cell.getCellType()将返回HSSFCell.CELL_TYPE_NUMERIC,不过利用工具函 数HSSFDateUtil.isCellDateFormatted(cell)可以判断出单元格的值是否为日期。 isCellDateFormatted函数通过比较单元格的日期和 Excel的内置日期格式得出结论 可以想象,按照这种判断方法,很多时候 isCellDateFormatted函数会返回否定的结论,存在一定的误判可能。 我们常用的两种 CELL_TYPE_STRING和 CELL_TYPE_NUMERIC类型,因为在 Excel文件中只有字符串和数字。 CellType 说 明 CELL_TYPE_BLANK空 值CELL_TYPE_BOOLEAN布 尔 型CELL_TYPE_ERROR错误CELL_TYPE_FORMULA公式型POI基础q注意 : q创建工作表及其内容必须从相应的父对象出发,例如: HSSFSheet sheet = wb.createSheet();HSSFRow row = sheet.createRow(short)0); HSSFCell cell = row.createCell(short)0); cell.setCellValue(1); row.createCell(short)1).setCellValue(1.2); row.createCell(short)2).setCellValue(“一个字符串 “);row.createCell(short)3).setCellValue(true);qPOI生成 Excel -即把数据库中的数据写入到 Excel表中去 !创建一个 HSSFWorkbook实例,然后在适当的时候创建一个把文件写入磁盘的 OutputStream,但延迟到处理结束时创建 OutputStream也可以: HSSFWorkbook wb = new HSSFWorkbook();FileOutputStream fileOut= new FileOutputStream(“workbook.xls“);wb.write(fileOut);fileOut.close();q 各种单元格样式HSSFCellStyle cellStyle = wb.createCellStyle();/对齐cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);/带边框cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);/颜色与填充样式cellStyle.setFillBackgroundColor(HSSFColor.AQUA.index);cellStyle.setFillPattern(HSSFCellStyle.BIG_SPOTS);cellStyle.setFillForegroundColor(HSSFColor.ORANGE.index);cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);六, 行高 ,列宽。HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet(“new sheet“);HSSFRow row = sheet.createRow(short)0);/2是行高值row.setRowHeight(2);/3是列号, 4是列宽值sheet.setColumnWidth(3, 4);q 中文乱码问题的处理 :q1.文件可以用中文命名FileOutputStream fileOut=new FileOutputStream(“file/excel/工作表.xls“) q2.sheet命名为中文需要设置 setSheetName方法:HSSFWorkbook wb
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 岚山保安考试题及答案
- 课件显示不全的原因
- 四川省广元市川师大万达中学2025-2026学年高二上学期第一次月考(8月)物理试题
- 酒店工程考试题及答案
- 后勤管理员三级安全教育(班组级)考核试卷及答案
- 精准扶贫考试题及答案
- 进阶物理考试题及答案
- 铸管精整操作工技能巩固考核试卷及答案
- 幻灯机与投影机维修工应急处置考核试卷及答案
- 清罐操作工晋升考核试卷及答案
- 第一单元-第2课-《国色之韵》课件人教版初中美术八年级上册
- 地坪承包合同范本3篇
- 中学校长在2025年秋季学期开学典礼上致辞:六个“成长关键词”耕耘当下遇见未来
- (2025年标准)猪场租赁协议书
- 交通规划中智能交通信号控制技术应用2025年研究报告
- 公共空间设计培训课件
- 2025年公安部交管局三力测试题库及答案
- 2025年邮政集团招聘考试复习资料与预测题
- 2025年第十届全国中小学“学宪法、讲宪法”知识竞赛题库及答案
- 地下管网管道施工现场管理方案
- 2025年秋期部编版四年级上册小学语文教学计划+教学进度表
评论
0/150
提交评论