一.POI 简介 Jakarta
POI 是apache的子项目,目标是处理ole2对象。它提供了一组操纵Windows文档的Java API
目前比较成熟的是HSSF接口,处理MS Excel(97-2002)对象。它不象我们仅仅是用csv生成的没有格式的可以由Excel转换的东西,而是真正的Excel对象,你可以控制一些属性如sheet,cell等等。
二.HSSF概况 HSSF 是Horrible SpreadSheet Format的缩写,也即“讨厌的电子表格格式”。 也许HSSF的名字有点滑稽,就本质而言它是一个非常严肃、正规的API。通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。
HSSF 为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件-用户模型”。前者很好理解,后者比较抽象,但操作效率要高得多。
三.开始编码 1 . 准备工作 要求:JDK 1.4+
POI 开发包
可以到 http://www.apache.org/dyn/closer.cgi/jakarta/
poi / 最新的
POI 工具包
2 . EXCEL 结构 HSSFWorkbook excell 文档对象介绍
HSSFSheet excell的表单
HSSFRow excell的行
HSSFCell excell的格子单元
HSSFFont excell字体
HSSFName 名称
HSSFDataFormat 日期格式
在
poi 1.7中才有以下2项:
HSSFHeader sheet头
HSSFFooter sheet尾
和这个样式
HSSFCellStyle cell样式
辅助操作包括
HSSFDateUtil 日期
HSSFPrintSetup 打印
HSSFErrorConstants 错误信息表
3 .具体用法实例 (采用 usermodel ) 如何读Excel
读取Excel文件时,首先生成一个
POI FSFileSystem对象,由
POI FSFileSystem对象构造一个HSSFWorkbook,该HSSFWorkbook对象就代表了Excel文档。下面代码读取上面生成的Excel文件写入的消息字串:
- POI FSFileSystem fs=newPOI FSFileSystem( new FileInputStream( "d:\test.xls" ));
- HSSFWorkbook wb = new HSSFWorkbook(fs);
- } catch (IOException e) {
-
e.printStackTrace();
-
}
- HSSFSheet sheet = wb.getSheetAt(0 );
- HSSFRow row = sheet.getRow(0 );
- HSSFCell cell = row.getCell((short ) 0 );
-
String msg = cell.getStringCellValue();
- <SPAN class=hilite1>POI</SPAN>
-
-
FSFileSystem fs=new<SPAN class=hilite1>POI</SPAN>
-
-
FSFileSystem(new FileInputStream("d:\test.xls"));
-
HSSFWorkbook wb = new HSSFWorkbook(fs);
-
} catch (IOException e) {
- e.printStackTrace();
- }
-
HSSFSheet sheet = wb.getSheetAt(0);
-
HSSFRow row = sheet.getRow(0);
-
HSSFCell cell = row.getCell((short) 0);
- String msg = cell.getStringCellValue();
POI
FSFileSystem fs=newPOI
FSFileSystem(new FileInputStream("d:\test.xls"));
HSSFWorkbook wb = new HSSFWorkbook(fs);
} catch (IOException e) {
e.printStackTrace();
}
HSSFSheet sheet = wb.getSheetAt(0);
HSSFRow row = sheet.getRow(0);
HSSFCell cell = row.getCell((short) 0);
String msg = cell.getStringCellValue();
如何写excel,
将excel的第一个表单第一行的第一个单元格的值写成“a test”。
- POI FSFileSystem fs = new POI FSFileSystem( new FileInputStream( "workbook.xls" ));
-
- HSSFWorkbook wb = new HSSFWorkbook(fs);
-
- HSSFSheet sheet = wb.getSheetAt(0 );
-
- HSSFRow row = sheet.getRow(0 );
-
- HSSFCell cell = row.getCell((short ) 0 );
-
- cell.setCellValue("a test" );
-
-
-
- FileOutputStream fileOut = new FileOutputStream( "workbook.xls" );
-
-
wb.write(fileOut);
-
-
fileOut.close();
- <SPAN class=hilite1>POI</SPAN>
-
-
FSFileSystem fs =new <SPAN class=hilite1>POI</SPAN>
-
-
FSFileSystem(new FileInputStream("workbook.xls"));
-
-
HSSFWorkbook wb = new HSSFWorkbook(fs);
-
-
HSSFSheet sheet = wb.getSheetAt(0);
-
-
HSSFRow row = sheet.getRow(0);
-
-
HSSFCell cell = row.getCell((short)0);
-
-
cell.setCellValue("a test");
-
-
-
-
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
-
- wb.write(fileOut);
-
- fileOut.close();
POI
FSFileSystem fs =new POI
FSFileSystem(new FileInputStream("workbook.xls"));
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
HSSFRow row = sheet.getRow(0);
HSSFCell cell = row.getCell((short)0);
cell.setCellValue("a test");
// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
4 . 可参考文档 POI 主页:http://jakarta.apache.org/
poi /,
初学者如何快速上手使用
POI HSSF
http://jakarta.apache.org/
poi /hssf/quick-guide.html 。
代码例子 http://blog.java-cn.com/user1/6749/archives/2005/18347.html
里面有很多例子代码,可以很方便上手。
四.使用心得 POI HSSF 的usermodel包把Excel文件映射成我们熟悉的结构,诸如Workbook、Sheet、Row、Cell等,它把整个结构以一组对象的形式保存在内存之中,便于理解,操作方便,基本上能够满足我们的要求,所以说这个一个不错的选择。
分享到:
相关推荐
在这个例子中,首先创建了一个 `POIFSFileSystem` 对象来处理文件系统的输入流,然后通过这个对象创建了 `HSSFWorkbook`,从而能够访问并操作 Excel 文件的内容。 在实际应用中,你还可以使用 POI 来创建新的 Excel...
2. `[EXCEL实战技巧精萃].[ExcelHome][WMV][T15-05][基础篇05][查找与替换].wmv`:这个视频讲解的是查找与替换功能,这是Excel中一个非常强大的工具,可以帮助快速定位和修改大量数据。可能包含的知识点包括: - ...
《易表.net使用手册-基础篇》是一本详尽的指南,主要针对易表 XP 用户进行升级和使用操作的说明。这份222页的手册旨在帮助用户充分理解和利用易表.net的各项功能,无论是初学者还是有经验的用户,都能从中获益。...
本教程“MATLAB 7.X程序设计--基础篇”旨在为初学者提供一个系统且全面的学习路径,帮助他们快速掌握MATLAB的基本操作和编程技巧。 在MATLAB程序设计中,基础概念主要包括以下几个方面: 1. **环境与界面**:...
Excel VBA 操作 Word 入门篇 本文将详细介绍 Excel VBA 操作 Word 的入门知识,旨在帮助读者掌握 Excel VBA 中操作 Word 的基础知识。 一、新建 Word 引用 在 Excel VBA 中,新建 Word 引用需要首先创建一个对 ...
在本篇教程中,我们将详细探讨如何使用Python来操作Excel文档。内容涵盖了从基础知识到具体操作方法的详细介绍,并提供了一些实际操作的代码实例。根据给定文件的内容,我们将逐一解析相关的知识点。 ### Python...
这个压缩包文件"matlab零基础数学建模-基础篇:18 matlab导入数据.zip"显然是一个教学资源,旨在帮助初学者掌握如何在MATLAB环境中导入各种类型的数据。下面我们将详细探讨MATLAB中的数据导入方法和相关知识点。 1....
海云天网络阅卷系统操作流程(-基础和提高篇) 海云天网络阅卷系统操作流程(-基础和提高篇)是指海云天公司开发的一款在线阅卷系统,旨在帮助教师和管理员更方便地阅卷和管理学生的成绩。下面是该系统的操作流程相关...
这篇基础操作篇将带你深入理解如何在Python中导入Excel数据。 首先,我们需要安装必要的库。`pandas`库是处理数据的主要工具,而`openpyxl`库(对于.xlsx格式的Excel文件)或`xlrd`库(对于.xls格式的文件)则用于...
openpyxl 模块是一个读写 Excel 2010 文档的 Python 库,如果要处理更早格式的 Excel 文 档,需要用到额外的库,openpyxl 是一个比较综合的工具,能够同时读取和修改 Excel 文档。 其他很多的与 Excel 相关的项目...
本篇将详细介绍如何在WINCC中基于Visual Basic Script (VBS)实现对Excel文件中的数据进行读写操作。 首先,我们需要了解基础的VBS语法和WINCC的编程环境。VBS是一种弱类型的语言,常用于Windows系统的脚本编写,如...
7. **文件I/O操作**:学会读写文本文件、二进制文件以及CSV和Excel文件。理解`fread/fwrite`、`textscan`、`dlmwrite`和`xlsread`等函数的使用。 8. **面向对象编程**:MATLAB支持面向对象编程,可以创建自定义类并...
本篇文档是关于Excel 2010的电子表格系统教学资料,包含了各种操作的基础知识点,具体如下: 1. 单元格地址概念:在Excel中,单元格地址是指单元格在工作表中的位置,而非大小、内容或者所在的工作表。因此,正确...
Excel从入门到精通(基础篇) ...Excel从入门到精通(基础篇)涵盖了Excel的基本知识、基本操作、工作簿和工作表的使用方法、数据分析基础知识等内容,为学习Excel的基础知识提供了一个系统的引导。
本篇文章将深入探讨如何在Delphi环境中与Excel进行交互,主要依据提供的文件内容进行讲解。 首先,我们来看"delphi中读取Excel数据.docx"这个文档。该文档可能详细介绍了如何在Delphi程序中读取Excel文件的数据。...
本篇将详细介绍如何在Visual Studio 2008(简称VS2008)环境下,使用VC++进行Excel的自动化操作。 首先,我们要明白VC++是Microsoft公司推出的一种C++编译器,它集成了开发环境,支持Windows API、MFC(Microsoft ...
在本篇文章中,我们将深入探讨如何使用POI API创建文件并导出为Excel文档。 首先,我们需要理解Apache POI的基本概念。POI是“Poor Obfuscation Implementation”的缩写,它是一个开放源码的Java API,用于读取、...
本篇文章将深入探讨如何使用C#来创建和导出Excel文件。 首先,你需要一个库来处理Excel文件。Microsoft提供了`Microsoft.Office.Interop.Excel`命名空间,这是一个COM接口,可以直接与Excel应用程序交互。但是,...
本篇将探讨如何利用Python与Excel进行交互,实现用Excel进行艺术创作,即“用Excel画画”。这个案例不仅展示了Python对Excel的操作能力,还揭示了编程与艺术结合的可能性。 首先,我们需要引入Python中的pandas和...
这篇文档“Excel实用技巧基础功能篇完整版资料.ppt”旨在帮助用户提升Excel的基础操作技能,从而提高工作效率。以下是一些关键知识点: 1. **数据录入**: - 日期格式:正确输入日期的格式为“2008-6-1”或“2008/...