欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年poi读写Excel文件 .pdf

    • 资源ID:32514057       资源大小:106.89KB        全文页数:14页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年poi读写Excel文件 .pdf

    一、 Excel 基础二、 HSSF概况三、通过 usermodel读取文件四、通过 usermodel写入文件五、通过 eventusermodel读取文件六、 HSSF电子表格结构七、通过 HPSF 读取文档属性八、文档摘要信息九、附录正文:在上一篇文章中, 我们介绍了POI 项目的基本概念, 了解了如何用POI 来读写 OLE 2复合文档结构,并给出了两个简单的例子:用POI 来读写 Excel 文件的 Workbook 流。本文继续前文的话题,阐述如何用POI 来读取 / 写入完整的Excel 文件。约定: POI 项目 2.0 版现在已经接近正式发行阶段,开发进度迅速,不断有新的功能集成到原有的系统,同时也有对原有系统的修改。为了保证本文的及时性,本文将按照最近的 1.9开发版说明。虽然编译最近的发行版源代码也能正常运行,但现在的代码和 2.0的发行版会有一些出入。一、Excel 基础Microsoft Excel 97 文件格式也被称为BIFF8, 最近版本的Excel 只对该格式作了少量的改动。 增加对新格式的支持除了增加项目的复杂性之外,唯一的效果也许只是不得不使每个用户升级代码,没有什么实际的好处。因此,在下文说明中,凡是提到Excel 97格式的地方其实都是指Excel 从 97 到 XP 的格式。二、HSSF概况POI 项目实现的 Excel 97文件格式称为HSSF也许你已经猜到, HSSF是 Horrible SpreadSheet Format 的缩写,也即“讨厌的电子表格格式”(微软使某些原本简单的事情过分复杂,同时又过分简单地处理了某些原本需要灵活性的事情,让人不胜佩服!)也名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 14 页 - - - - - - - - - 许 HSSF的名字有点滑稽,就本质而言它是一个非常严肃、正规的API 。通过 HSSF ,你可以用纯 Java代码来读取、写入、修改Excel 文件。前面一篇文章提到了POIFS,那么 HSSF和 POIFS 又有什么关系呢?就象其他POI的 API 一样, HSSF建立在POIFS 的基础上,因此在HSSF内的有些代码和前文的某些代码很相似。不过,当我们编写基于HSSF API 的代码时,一般不需要了解POIFS API的细节。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 来修改文件。三、通过 usermodel读取文件用 HSSF的 usermodel读取文件很简单。首先创建一个InputStream,然后创建一个HSSFWorkbook:InputStream myxls = new FileInputStream(workbook.xls); HSSFWorkbook wb = new HSSFWorkbook(myxls);有了 HSSFWorkbook 实例,接下来就可以提取工作表、工作表的行和列,例如:HSSFSheet sheet = wb.getSheetAt(0); / 第一个工作表HSSFRow row = sheet.getRow(2); / 第三行HSSFCell cell = row.getCell(short)3); / 第四个单元格上面这段代码提取出第一个工作表第三行第四单元格。利用单元格对象可以获得它的值,提取单元格的值时请注意它的类型:if (cell.getCellType() = HSSFCell.CELL_TYPE_STRING) (单元格是字符串,值是: + cell.getStringCellValue(); else if (cell.getCellType() = HSSFCell.CELL_TYPE_NUMERIC) (单元格是数字,值是: + cell.getCellValue(); else () (单元格的值不是字符串或数值。); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - 如果搞错了数据类型,程序将遇到异常。特别地,用HSSF处理日期数据要小心。Excel内部以数值的形式保存日期数据,区别日期数据的唯一办法是通过单元格的格式(如果你曾经在Excel 中设置过日期格式,应该明白这是什么意思)。因此,对于包含日期数据的单元格,cell.getCellType() 将返回HSSFCell.CELL_TYPE_NUMERIC ,不过利用工具函数HSSFDateUtil.isCellDateFormatted(cell) 可以判断出单元格的值是否为日期。isCellDateFormatted函数通过比较单元格的日期和Excel的内置日期格式得出结论可以想象,按照这种判断方法,很多时候isCellDateFormatted函数会返回否定的结论,存在一定的误判可能。本文附录包含了一个在Servlet环境中利用HSSF创建和返回Excel 工作簿的实例。四、通过 usermodel写入文件写入 XLS 文件比读取 XLS 文件还要简单。创建一个HSSFWorkbook 实例,然后在适当的时候创建一个把文件写入磁盘的OutputStream,但延迟到处理结束时创建OutputStream也可以:HSSFWorkbook wb = new HSSFWorkbook(); FileOutputStream fileOut = new FileOutputStream(workbook.xls); wb.write(fileOut); fileOut.close();创建工作表及其内容必须从相应的父对象出发,例如: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);如果要设置单元格的样式,首先要创建一个样式对象,然后把它指定给一个单元格或者把它指定给多个具有相同样式的单元格,例如,如果Excel 表格中有一个摘要行,摘要行的数据必须是粗体、斜体,你可以创建一个summaryRowStyle样式对象,然后把这个样式指定给所有摘要行上的单元格。注意,CellFormat 和 CellStyle对象是工作簿对象的成员,单元格对象只是引用它们。. HSSFCellStyle style = workbook.createCellStyle(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 14 页 - - - - - - - - - style.setDataFormat (HSSFDataFormat.getBuiltinFormat($#,#0_);Red($#,#0); style.setFillBackgroundColor(HSSFColor.AQUA.index); style.setFillPattern(HSSFCellStyle.BIG_SPOTS); . someCell.setCellStyle(style); someOtherCell.setCellStyle(style);版本较新的 HSSF允许使用数量有限的Excel 公式。这一功能目前还是“Beta级质量”,正式使用之前务必仔细测试。指定公式的方式类如:someCell.setCellFormula(SUM(A1:A2:); 。当前,公式中已经可以调用所有内建的函数或操作符,但逻辑操作符和函数(例如IF 函数)除外,这部分功能目前还在开发之中。五、通过 eventusermodel读取文件通过 eventusermodel读取文件要比使用usermodel复杂得多, 但效率也要高不少, 因为它要求应用程序一边读取数据,一边处理数据。eventusermodel实际上模拟了DOM环境下 SAX 处理 XML 文档的办法,应用程序首先要注册期望处理的数据,eventusermodel将在遇到匹配的数据结构时回调应用程序注册的方法。使用eventusermodel最大的困难在于你必须熟悉Excel 工作簿的内部结构。在 HSSF中,低层次的二进制结构称为记录(Record)。记录有不同的类型,每一种类型由 org.apache.poi.hssf.record 包中的一个Java类描述。例如, BOFRecord 记录表示Workbook 或 Sheet区域的开始, RowRecord表示有一个行存在并保存其样式信息。所有具有 CellValueRecordInterface接口的记录表示Excel 的单元格,包括NumericRecord、LabelSSTRecord和 FormulaRecord (还有其他一些, 其中部分已被弃置不用,部分用于优化处理,但一般而言,HSSF可以转换它们)。下面是一个注册事件处理句柄的例子:private EventRecordFactory factory = new EventRecordFactory(); factory.registerListener(new ERFListener() public boolean processRecord(Record rec) (got BOF Record); return true; , new short BOFRecord.sid); factory.processRecords(someInputStream);六、HSSF电子表格结构名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 14 页 - - - - - - - - - 如前所述, HSSF建立在 POIFS 的基础上。具体地说,Excel 97+文件是 OLE 2 复合文档(OLE 2 Compound Document ),底层的OLE 2 复合文档保存了一个总是命名为Workbook(Excel 95除外, HSSF不支持 Excel 95)的流。然而,宏和图片并不保存在Workbook 流,它们有自己独立的流,有时甚至会放到OLE 2 CDF 文件之内的另一个目录。理想情况下,宏也应该被保留,不过目前POI 项目中还没有合适的API 来处理宏。每一个流之内是一组记录,一个记录其实就是一个字节数组,可分为记录头、记录体两部分。记录头指明了记录的类型(也即ID )以及后继数据的长度,记录体被分割成多个字段( Field),字段包含数值数据(包括对其他记录的引用)、字符数据或标记。下图概要说明了Excel 工作簿的顶级结构:Bla.xls OLE2CDF headers Workbook stream Workbook Static String Table Record. Sheet names and pointers Sheet ROW ROW NUMBER RECORD (cell) LABELSST Record (cell) Sheet images, macros, etc. Document Summary Summary七、通过 HPSF 读取文档属性在 Microsoft Word 、Excel、PowerPoint等软件中,用户可以通过“文件”“属性”菜单给文档添加附加信息,包括文档的标题、主题、摘要、类别、关键词等,同时应用软件本身还会加入最后访问的用户、最后访问和修改/ 打印的日期时间等信息。文档的属性和正文是分开保存的。如前所述,OLE 2 CDF 文件内部就象是一个容器,里面包含许多类似目录和文件的结构,而 POIFS 就是用来访问其中的文件的工具。这些文件也称为流,文档的属性就保存在POIFS 文件系统中专用的流里面。以一个Word文档为例:虽然在资源管理器中你只看到一个叫做MyFile.doc 的文档,其实在这个文档名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 14 页 - - - - - - - - - 的内部,又包含了一个WordDocument、一个 SummaryInformation 和一个DocumentSummaryInformation 文档;通常还会有其他的文档,这里暂且不管。你能够猜出这些文档(流)分别包含什么内容吗?不错,WordDocument 包含了你在 Word 里面编辑的文本,文档的属性保存在SummaryInformation 和DocumentSummaryInformation 流里面。也许将所有属性保存在单个文档里面看起来太简单了,所以Microsoft 决心要使用两个流,为了使事情更复杂一点,这两个流的名字前面还加上了八进制的005 字符这是一个不可打印的字符,因此前面就把它省略了。Microsoft 定义的标准属性有一个好处,它们并不在乎主文档到底是什么类型不管是 Word 文档、 Excel工作簿还是PowerPoint幻灯。只要你知道如何读取Excel 文档的属性,就知道了如何读取其他文档的属性。读取文档属性其实并不复杂,因为Java程序可以利用POI 项目的 HPSF 包。 HPSF是 Horrible Property Set Format 的缩写,译成中文就是“讨厌的属性集格式”。HPSF 包是 POI 项目实现的读取属性工具,目前还不支持属性写入。对于读取 Microsoft 定义的标准属性,通过HPSF 提供的 API 可以很方便地办到;但如果要读取任意属性集就要用到更一般化的API,可以想象它要比读取标准属性的API 复杂不少。本文只介绍读取标准属性的简单API,因为对大多数应用程序来说这已经完全足够了。下面就是一个读取OLE 2 CDF 文档的标题( title)属性的 Java程序:import java.io.*; import org.apache.poi.hpsf.*; import org.apache.poi.poifs.eventfilesystem.*;/* * 读取 OLE 2 文档标题的示例程序,* 在命令行参数中指定文档的文件名字。*/public class ReadTitle public static void main(String args) throws IOException final String filename = args0; POIFSReader r = new POIFSReader(); r.registerListener(new MyPOIFSReaderListener(), 005SummaryInformation); r.read(new FileInputStream(filename); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 14 页 - - - - - - - - - static class MyPOIFSReaderListener implements POIFSReaderListener public void processPOIFSReaderEvent(POIFSReaderEvent event) SummaryInformation si = null; try si = (SummaryInformation) PropertySetFactory.create(event.getStream(); catch (Exception ex) throw new RuntimeException (属性集流 + event.getPath() + event.getName() + : + ex); final String title = si.getTitle();if (title != null) System.out.println(标题 : + title + ); else System.out.println(该文档没有标题 .); main()方法利用 POIFS 的事件系统从命令行指定的OLE 2 文档读取名为005SummaryInformation 的流,当 POIFSReader 遇到这个流时,它把控制传递给MyPOIFSReaderListener的 processPOIFSReaderEvent() 方法。processPOIFSReaderEvent() 到底有什么用呢?它通过参数获得一个输入流,该输入流包含了文档标题等属性。为了访问文档的属性,我们从输入流创建一个PropertySet实例,如下所示:si = (SummaryInformation) PropertySetFactory.create(event.getStream();这个语句其实包含三个步骤的操作: event.getStream() 从 POIFSReader传入的 POIFSReaderEvent获得输入流。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 14 页 - - - - - - - - - 以刚才获得的输入流为参数,调用PropertySetFactory的静态方法create() 。正如其名字所暗示的,PropertySetFactory是一个工厂类,它有一台“机器”能够把一个输入流转换成一个PropertySet实例,这台机器就是create () 方法。 把 create() 方法返回的PropertySet定型 (cast ) 成为 SummaryInformation。 PropertySet提供了按照一般办法读取属性集的各种机制,SummaryInformation 是 PropertySet的子类,即 SummaryInformation 类在PropertySet类的基础上增加了操作Microsoft 标准属性的便捷方法。在这个处理过程中, 可能引起错误的因素很多,因此我们把这部分内容放入了一个try 块不过这个示例程序只按照最简单的方式处理了异常,在实际应用中,最好能够对可能出现的不同异常类型分别处理。除了一般的I/O 异常之外,还有可能遇到HPSF特有的异常,例如,如果输入流不包含属性集或属性集非法,就会抛出NoPropertySetStreamException异常。有一种错误不太常见,但也不是绝无可能005SummaryInformation 包含一个合法的属性集, 但不是摘要信息属性集。如果出现这种情况, 则定型成 SummaryInformation操作会失败,引发ClassCastException异常。获得 SummaryInformation 实例之后,剩下的事情就很简单了,只要调用getTitle()方法,然后输出结果。除了 getTitle()之外, SummaryInformation 还包含其他一些便捷方法,例如getApplicationName()、 getAuthor()、getCharCount() 、和 getCreateDateTime() 等。HPSF 的JavaDoc文档详细说明了所有这些方法。八、文档摘要信息遗憾的是,并非所有的属性都保存在摘要信息属性集之中。许多(但不是全部)OLE 2 文件还有另一个属性集,称为“文档摘要信息”,对应的流是005DocumentSummaryInformation 。这个属性集保存的属性包括文档的类别、PowerPoint幻灯的多媒体剪辑数量,等等。要访问文档摘要信息属性集,程序的处理过程也和上例相似,只是注册的目标应该改成 005DocumentSummaryInformation 流有时,你可能想要同时注册到摘要信息和文档摘要信息这两个流。其余的处理方式和前面的例子差不多,你应该把包含文档摘要信息的流传递给PropertySetFactory.create() ,但这次工厂方法将返回一个DocumentSummaryInformation 对象(而不是前面例子中的SummaryInformation 对象)。如果同时注册到了两个流,注意检查返回值的具体类型,或者使用Java的 instanceof操作符,或者使用专用的isSummaryInformation()和 isDocumentSummaryInformation()方法。记住,create() 方法返回的总是一个PropertySet对象,因此你总是可以对create() 返回对象名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 14 页 - - - - - - - - - 调用 isSummaryInformation()和 isDocumentSummaryInformation()方法, PropertySet类之所以要提供这两个方法,是因为属性集可能是自定义的。如果你想要处理自定义的属性集,或者要从标准的属性集读取用户定义的属性,必须使用一个更一般化的API,前面已经提到,这个API 要复杂得多,本文不再讨论,请参见 HPSF 的 HOW-TO 文档和 POI 的文档。结束语:本文探讨了HSSF的应用以及如何输出到Excel 文件,另外还涉及了HPSF以及如何读取属性集文档摘要信息。POI 是一个功能非常强大的项目,许多主题本文尚未涉及,例如如何用HSSF Serializer将 XML 文档转换成Excel 格式等,这一切就有待你自己去研究了。参考:Jakarta POI项目主页Jakarta POI 源代码九、附录实例:利用 Servlet创建和返回一个工作簿。package org.apache.poi.hssf.usermodel.examples;import java.io.*; import .*; import javax.servlet.*; import javax.servlet.http.*; import org.apache.poi.hssf.usermodel.*;public class HSSFCreate extends HttpServlet public void init(ServletConfig config) throws ServletException super.init(config); public void destroy() /* 处理 HTTP GET 和 POST 请求* param request :请求* param response :应答*/ protected void processRequest(HttpServletRequest request, 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 14 页 - - - - - - - - - HttpServletResponse response) throws ServletException, IOException response.setContentType(application/vnd.ms-excel); HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(new sheet);/ 创建一个新的行,添加几个单元格。/ 行号从 0 开始计算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); / 写入输出结果OutputStream out = response.getOutputStream(); wb.write(out); out.close(); /* 处理 HTTP GET 请求* param request :请求* param response :应答*/ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException processRequest(request, response); /* 处理 HTTP POST 请求* param request :请求* param response :应答*/ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException processRequest(request, response); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 14 页 - - - - - - - - - /* 返回关于 Servlet的简单说明*/ public String getServletInfo() return 示例:在 Servlet中用 HSSF创建 Excel 工作簿 ; POI HSSF 操作 MS Excel简述(OMIS 二期设计阶段寻找Excel 导入导出实现方法)POI HSSF 操作 MS Excel简述POI HSSF 是一个专门操作EXCEL 的 java包,可通过纯java操作 xls文件。POI HSSF 的类文件都放在在org.apache.poi.hssf 包下,通过此包中的类就可实现用java操作 Excel 文件了。下面是用 POI HSSF 操作 Excel文件的方法简述:一,建立 Excel 工作薄HSSFWorkbook wb = new HSSFWorkbook();二,建立 Excel 工作表,每个工作表对应的是Excel界面左下角的一个标签sheet1 ,sheet2 HSSFSheet sheet1 = wb.createSheet(new sheet);三,在工作表中建立单元格/ 首先,建立行对像,行号作为参数传给createRow方法,第一行由0 开始计算。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(This is a string); row.createCell(short)3).setCellValue(true);/ 数据格式可通过创建单元格值时默认如上面所视/ 也可以创建单元格后调用setCellType指定cell.setCellType(CELL_TYPE_NUMERIC);四,向单元格插入日期值HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(new sheet);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 14 页 - - - - - - - - - / 可通过 Sheet.setSheetName(sheetindex,SheetName,encoding)设定工作表名/ 创建新行并向其加入单元格,行号由0 开始。HSSFRow row = sheet.createRow(short)0);/ 创建一个单元格并向其输入一日期值,但这第一个单元格并非是日期格式。HSSFCell cell = row.createCell(short)0); cell.setCellValue(new Date();/ 我们将这第二个单元格改成日期格式,这需要从工作薄创建一个新的单元格格式,这可 / 以只影响当前建立的一个单元格。HSSFCellStyle cellStyle = wb.createCellStyle(); cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat(m/d/yy h:mm); cell = row.createCell(short)1); cell.setCellValue(new Date(); cell.setCellStyle(cellStyle);五,各种单元格样式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);七,例程名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 14 页 - - - - - - - - - 首先调用一个方法将Oracle 数据库中的数据取出,放到List 实例中,这里我调用了srrd项目中 ProductData 类的 listProductQuery()取得一个 List 实例。List 中的对象是一系列名为 ProductQuery 实体类的实例。然后读List,将 ProductQuery 实例中的数据取出放到HSSFCell单元格中。最后将HSSFWorkbook 中的数据输出到输出流,完成数据导出。/ 建工作薄HSSFWorkbook wb = new HSSFWorkbook(); / 建名为 example的工作表HSSFSheet sheet = wb.createSheet(example); / 给工作表前8 列定义列宽sheet.setColumnWidth(short)0,(short)2500); sheet.setColumnWidth(short)1,(short)6000); sheet.setColumnWidth(short)2,(short)3500); sheet.setColumnWidth(short)3,(short)9000); sheet.setColumnWidth(short)4,(short)8000); sheet.setColumnWidth(short)5,(short)8000); sheet.setColumnWidth(short)6,(short)20000); sheet.setColumnWidth(short)7,(short)8000); / 在表中建行HSSFRow row = sheet.createRow(0); / 建立单元格HSSFCell cell = new HSSFCell8; for (short i = 0; i 0) for (int i = 0; i list.size() - 1; i+) ProductQuery query = (ProductQuery) list.get(i); HSSFRow datarow = sheet.createRow(i + 1); HSSFCell data = new HSSFCell8; for (short j = 0; j 8; j+) dataj = datarow.createCell(j); / 将单元格定义成UTF_16 编码,这样才能使输出数据不会乱码dataj.setEncoding(HSSFCell.ENCODING_UTF_16); data0.setCell

    注意事项

    本文(2022年poi读写Excel文件 .pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开