使用poi导入excel表格
#
一、简介
ApachePOI项目是基于Microsoft的OLE 2复合文档格式开发纯Java文件格式端口的主项目。MicrosoftOffice文档以及使用MFC属性集序列化其文档对象的程序都使用OLE 2复合文档格式。
(1)OLE 2文件的POIFS
POIFS是POI中最古老、最稳定的部分。它是我们OLE 2复合文档格式到纯Java的端口。它支持读写功能。所有用于二进制(非XML)MicrosoftOffice格式的组件最终都依赖于它。
(2)Excel文档的HSSF和XSSF
HSSF是Microsoft Excel 97(-2003)文件格式(BIFF 8)到纯Java的端口。XSSF是我们将MicrosoftExcelXML(2007+)文件格式(OOXML)移植到纯Java的端口。SS是一个包,它通过一个通用API为这两种格式提供共同的支持。它们都支持读写功能。
(3)Word文档的HWPF和XWPF
HWPF是Microsoft Word 97(-2003)文件格式到纯Java的端口。它支持读取,并限制了写入功能。它还为旧的Word 6和Word 95格式提供了简单的文本提取支持。这一组成部分仍处于发展的早期阶段。它已经可以读写简单的文件。我们还在研究来自OOXML规范的WordprocessingML(2007+)格式的XWPF。这提供了对更简单文件的读写支持,以及文本提取功能。
(4)PowerPoint文档的HSLF和XSLF
HSLF是Microsoft PowerPoint 97(-2003)文件格式到纯Java的端口。它支持读写功能。我们还在研究来自OOXML规范的PresentationML(2007+)格式的XSLF。
(5)用于OLE 2文档属性的HPSF
HPSF是我们OLE 2属性集格式到纯Java的端口。属性集主要用于存储文档的属性(标题、作者、上次修改的日期等),但它们也可以用于特定于应用程序的目的。HPSF支持属性的读写。
(6)用于Visio文档的HDGF和XDGF
HDGF是我们的MicrosoftVisio 97(-2003)文件格式到纯Java的端口。它目前只支持在一个非常低的水平上阅读,和简单的文本提取。XDGF是Microsoft Visio XML(.vsdx)文件格式到纯Java的端口。它比HDGF有更多的支持。
(7)发布文档的HPBF
HPBF是Microsoft Publisher 98(-2007)文件格式到纯Java的端口。目前,它只支持在低级别读取大约一半的文件部分,以及简单的文本提取。
(8)用于TNEF(winmail.dat)Outlook附件的HMEF
HMEF是Microsoft TNEF(Transport中性编码格式)文件格式到纯Java的端口。Outlook有时会使用TNEF对邮件进行编码,通常以winmail.dat的形式出现。HMEF目前只支持低水平的阅读,但我们希望添加文本和附件提取。
(9)用于Outlook消息的HSMF
HSMF是我们将MicrosoftOutlook消息文件格式移植到纯Java的端口。它目前只包含一些MSG文件的文本内容和一些附件。进一步的支持和文件正在缓慢地提供。目前,建议用户查阅单元测试,例如使用。Microsoft最近将Outlook文件格式添加到OSP中。现在可以获得更多信息,从而使实现此API成为一项更容易的任务。
二、引入依赖
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
三、读取excel文件
(1)可以使用一下的构造器创建XSSFWorkbook对象。
(2)获取指定的工作表
(3)关于XSSFSheet的操作
获取行
获取行迭代器
获取最后一行的下标
(4)关于XSSFRow的操作
获取单元格迭代器
获取单元格
获取单元格位置
(5)关于XSSFCell的操作
以字符串的形式获取单元格的值。对于数值单元格,我们抛出一个异常。对于空白单元格,我们返回一个空字符串。对于非字符串公式的公式,我们抛出一个异常
获取单元格的数值。对于字符串,我们抛出一个异常。对于空白单元格,我们返回0。对于公式或错误单元格,我们返回预先计算的值;
获取单元格作为日期的值。对于字符串,我们抛出一个异常。对于空白单元格,我们返回一个null。
返回单元格类型。数组公式中的表返回CellType。所有单元格的公式,即使公式仅在OOXML文件中为数组的左上角单元格定义。注意:POI不支持数据表公式。在POI看来,数据表中的单元格是按其缓存值类型划分的普通单元格。
CellType可选的枚举类型
(6)关于DataFormatter操作
DataFormatter包含格式化存储在单元格中的值的方法。当您需要完全按照Excel中显示的方式显示数据时,这对于报表和GUI演示非常有用。支持的格式包括货币、SSN、百分比、小数、日期、电话号码、邮政编码等。
在内部,格式将使用诸如DecimalFormat和SimpleDateFormat等格式的子类来实现。因此,该类使用的格式必须遵守与这些格式子类相同的模式规则。这意味着只有合法的数字模式字符(“0”,”#“,”.”,”,”等)可以以数字格式出现。可以在数字模式之前或之后插入其他字符,以形成前缀或后缀。
向可用格式添加新格式。将传递给格式的格式方法(由java.text.Format# Format指定)的值将是数值单元格中的双精度值。因此,format方法中的代码应该期望得到一个数字值。
将单元格的格式化值作为字符串返回,而与单元格类型无关。如果无法解析Excel格式模式,则将使用默认格式格式化单元格值。当传递一个空或空白单元格时,该方法将返回一个空字符串(“”)。将不计算公式类型单元格中的公式。
还没有评论,来说两句吧...