`

操作Excel文档-基础篇

阅读更多
一.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文件写入的消息字串:
Java代码 复制代码
  1. POI FSFileSystem fs=newPOI FSFileSystem( new  FileInputStream( "d:\test.xls" ));   
  2. HSSFWorkbook  wb = new  HSSFWorkbook(fs);   
  3.   } catch  (IOException e) {   
  4.   e.printStackTrace();   
  5.   }   
  6.   HSSFSheet sheet = wb.getSheetAt(0 );   
  7.   HSSFRow row = sheet.getRow(0 );   
  8.   HSSFCell cell = row.getCell((short 0 );   
  9.   String msg = cell.getStringCellValue();   
Java代码 复制代码
  1. <SPAN class=hilite1>POI</SPAN>   
  2.   
  3. FSFileSystem fs=new<SPAN class=hilite1>POI</SPAN>   
  4.   
  5. FSFileSystem(new FileInputStream("d:\test.xls"));    
  6. HSSFWorkbook  wb = new HSSFWorkbook(fs);    
  7.   } catch (IOException e) {    
  8.   e.printStackTrace();    
  9.   }    
  10.   HSSFSheet sheet = wb.getSheetAt(0);    
  11.   HSSFRow row = sheet.getRow(0);    
  12.   HSSFCell cell = row.getCell((short0);    
  13.   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”。

Java代码 复制代码
  1. POI FSFileSystem fs = new  POI FSFileSystem( new  FileInputStream( "workbook.xls" ));   
  2.   
  3.     HSSFWorkbook wb = new  HSSFWorkbook(fs);   
  4.   
  5.     HSSFSheet sheet = wb.getSheetAt(0 );   
  6.   
  7.     HSSFRow row = sheet.getRow(0 );   
  8.   
  9.     HSSFCell cell = row.getCell((short ) 0 );   
  10.   
  11.     cell.setCellValue("a test" );   
  12.   
  13.     // Write the output to a file    
  14.   
  15.     FileOutputStream fileOut = new  FileOutputStream( "workbook.xls" );   
  16.   
  17.     wb.write(fileOut);   
  18.   
  19. fileOut.close();   
Java代码 复制代码
  1. <SPAN class=hilite1>POI</SPAN>   
  2.   
  3. FSFileSystem fs =new <SPAN class=hilite1>POI</SPAN>   
  4.   
  5. FSFileSystem(new FileInputStream("workbook.xls"));    
  6.   
  7.     HSSFWorkbook wb = new HSSFWorkbook(fs);    
  8.   
  9.     HSSFSheet sheet = wb.getSheetAt(0);    
  10.   
  11.     HSSFRow row = sheet.getRow(0);    
  12.   
  13.     HSSFCell cell = row.getCell((short)0);    
  14.   
  15.     cell.setCellValue("a test");    
  16.   
  17.     // Write the output to a file    
  18.   
  19.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");    
  20.   
  21.     wb.write(fileOut);    
  22.   
  23. 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等,它把整个结构以一组对象的形式保存在内存之中,便于理解,操作方便,基本上能够满足我们的要求,所以说这个一个不错的选择。
分享到:
评论

相关推荐

    POI操作Excel文档-基础篇.pdf

    在这个例子中,首先创建了一个 `POIFSFileSystem` 对象来处理文件系统的输入流,然后通过这个对象创建了 `HSSFWorkbook`,从而能够访问并操作 Excel 文件的内容。 在实际应用中,你还可以使用 POI 来创建新的 Excel...

    Excel 技巧--02

    2. `[EXCEL实战技巧精萃].[ExcelHome][WMV][T15-05][基础篇05][查找与替换].wmv`:这个视频讲解的是查找与替换功能,这是Excel中一个非常强大的工具,可以帮助快速定位和修改大量数据。可能包含的知识点包括: - ...

    易表.net使用手册-基础篇

    《易表.net使用手册-基础篇》是一本详尽的指南,主要针对易表 XP 用户进行升级和使用操作的说明。这份222页的手册旨在帮助用户充分理解和利用易表.net的各项功能,无论是初学者还是有经验的用户,都能从中获益。...

    MATLAB 7.X程序设计--基础篇教程

    本教程“MATLAB 7.X程序设计--基础篇”旨在为初学者提供一个系统且全面的学习路径,帮助他们快速掌握MATLAB的基本操作和编程技巧。 在MATLAB程序设计中,基础概念主要包括以下几个方面: 1. **环境与界面**:...

    (完整word版)Excel-VBA-操作-Word(入门篇).doc

    Excel VBA 操作 Word 入门篇 本文将详细介绍 Excel VBA 操作 Word 的入门知识,旨在帮助读者掌握 Excel VBA 中操作 Word 的基础知识。 一、新建 Word 引用 在 Excel VBA 中,新建 Word 引用需要首先创建一个对 ...

    利用PYTHON操作EXCEL文档-教程与笔记习题

    在本篇教程中,我们将详细探讨如何使用Python来操作Excel文档。内容涵盖了从基础知识到具体操作方法的详细介绍,并提供了一些实际操作的代码实例。根据给定文件的内容,我们将逐一解析相关的知识点。 ### Python...

    matlab零基础数学建模-基础篇:18 matlab导入数据.zip

    这个压缩包文件"matlab零基础数学建模-基础篇:18 matlab导入数据.zip"显然是一个教学资源,旨在帮助初学者掌握如何在MATLAB环境中导入各种类型的数据。下面我们将详细探讨MATLAB中的数据导入方法和相关知识点。 1....

    海云天网络阅卷系统操作流程(-基础和提高篇).pdf

    海云天网络阅卷系统操作流程(-基础和提高篇) 海云天网络阅卷系统操作流程(-基础和提高篇)是指海云天公司开发的一款在线阅卷系统,旨在帮助教师和管理员更方便地阅卷和管理学生的成绩。下面是该系统的操作流程相关...

    【Python处理EXCEL】基础操作篇:在Python中导入EXCEL数据

    这篇基础操作篇将带你深入理解如何在Python中导入Excel数据。 首先,我们需要安装必要的库。`pandas`库是处理数据的主要工具,而`openpyxl`库(对于.xlsx格式的Excel文件)或`xlrd`库(对于.xls格式的文件)则用于...

    用Python中的openpyxl处理Excel数据 - 第2季 巩固篇.pdf

    openpyxl 模块是一个读写 Excel 2010 文档的 Python 库,如果要处理更早格式的 Excel 文 档,需要用到额外的库,openpyxl 是一个比较综合的工具,能够同时读取和修改 Excel 文档。 其他很多的与 Excel 相关的项目...

    Mac/IOS 读取excel文件

    本篇文章将详细讲解如何利用第三方开源库DHlibxls在这些操作系统上实现对Excel文件的读取。 DHlibxls是一个专门针对Objective-C的库,它提供了在Mac OS X和iOS上读取Microsoft Excel文件(.xls格式)的功能。这个库...

    如何在WINCC中基于VBS实现对EXCEL文件中数据的读写?.docx

    本篇将详细介绍如何在WINCC中基于Visual Basic Script (VBS)实现对Excel文件中的数据进行读写操作。 首先,我们需要了解基础的VBS语法和WINCC的编程环境。VBS是一种弱类型的语言,常用于Windows系统的脚本编写,如...

    matlab零基础数学建模-基础篇:19 进阶MATLAB高级编程技巧.zip

    7. **文件I/O操作**:学会读写文本文件、二进制文件以及CSV和Excel文件。理解`fread/fwrite`、`textscan`、`dlmwrite`和`xlsread`等函数的使用。 8. **面向对象编程**:MATLAB支持面向对象编程,可以创建自定义类并...

    18春电大《-计算机应用基础》模块3-Excel-2010-电子表格系统.pdf

    本篇文档是关于Excel 2010的电子表格系统教学资料,包含了各种操作的基础知识点,具体如下: 1. 单元格地址概念:在Excel中,单元格地址是指单元格在工作表中的位置,而非大小、内容或者所在的工作表。因此,正确...

    excel从入门到精通(基础篇).ppt

    Excel从入门到精通(基础篇) ...Excel从入门到精通(基础篇)涵盖了Excel的基本知识、基本操作、工作簿和工作表的使用方法、数据分析基础知识等内容,为学习Excel的基础知识提供了一个系统的引导。

    delphi操作excel大全

    本篇文章将深入探讨如何在Delphi环境中与Excel进行交互,主要依据提供的文件内容进行讲解。 首先,我们来看"delphi中读取Excel数据.docx"这个文档。该文档可能详细介绍了如何在Delphi程序中读取Excel文件的数据。...

    VC++ 自动化操作Excel文件

    本篇将详细介绍如何在Visual Studio 2008(简称VS2008)环境下,使用VC++进行Excel的自动化操作。 首先,我们要明白VC++是Microsoft公司推出的一种C++编译器,它集成了开发环境,支持Windows API、MFC(Microsoft ...

    使用poi-api创建文件导出excel文档

    在本篇文章中,我们将深入探讨如何使用POI API创建文件并导出为Excel文档。 首先,我们需要理解Apache POI的基本概念。POI是“Poor Obfuscation Implementation”的缩写,它是一个开放源码的Java API,用于读取、...

    C#导出excel文件

    本篇文章将深入探讨如何使用C#来创建和导出Excel文件。 首先,你需要一个库来处理Excel文件。Microsoft提供了`Microsoft.Office.Interop.Excel`命名空间,这是一个COM接口,可以直接与Excel应用程序交互。但是,...

    python自动办公-52 Excel-案例-用Excel画画

    本篇将探讨如何利用Python与Excel进行交互,实现用Excel进行艺术创作,即“用Excel画画”。这个案例不仅展示了Python对Excel的操作能力,还揭示了编程与艺术结合的可能性。 首先,我们需要引入Python中的pandas和...

Global site tag (gtag.js) - Google Analytics