本帖最后由 zhongweiwei 于 2012-7-16 16:41 编辑
Apache POI
是用
Java编写的免费开源的跨平台的
Java API,
Apache POI提供
API给
Java程式对
Microsoft Office格式档案读和写的功能。
- HSSF
-
提供读写
Microsoft ExcelXLS格式档案的功能。
- XSSF
-
提供读写
Microsoft ExcelOOXML XLSX格式档案的功能。
- HWPF
-
提供读写
Microsoft WordDOC格式档案的功能。
- HSLF
-
提供读写
MicrosoftPowerPoint格式档案的功能。
- HDGF
-
提供读
Microsoft Visio格式档案的功能。
- HPBF
-
提供读
MicrosoftPublisher格式档案的功能。
- HSMF
-
提供读
Microsoft Outlook格式档案的功能。
版本
稳定版
最新的稳定版是
Version 3.5-final (2009-09-28)
源码文件:
http://archive.apache.org/dist/poi/release/src/poi-src-3.5-FINAL-20090928.zip
二进制开发包:
http://archive.apache.org/dist/poi/release/bin/poi-bin-3.5-FINAL-20090928.zip
最新版
最新的版是
Version 3.8 (2011-3-26)还在不断的完善
二进制开发包:
http://www.fayea.com/apache-mirror/poi/release/bin/poi-bin-3.8-20120326.zip
源码文件:
http://mirror.bit.edu.cn/apache/poi/release/src/poi-src-3.8-20120326.zip
以下以一个小例子示范
POI
读取
excel
:
(此程序所用的POI版本是3.8版本,此实例重在突出POI的使用方法,对于代码格式、规范性、可拓展性暂未考虑,小女子初次发技术贴,有不足的地方欢迎大家提出)
读取
excel2003文件主要过程(代码块a):
public static void main(String[] args) throws Exception {
String file = "C:\\Users\\LONMID\\Desktop\\POI\\pirate.xls";
FileInputStream fis = new FileInputStream(file);
// 构建一个excel2003工作簿
Workbook wb = new HSSFWorkbook(fis);
List<ArrayList<String>> result = new ArrayList<ArrayList<String>>();
int totalColumn = 0;
if(wb != null){
Sheet sheet = wb.getSheetAt(0);
int totalRows = sheet.getPhysicalNumberOfRows();
if (totalRows >= 1 && sheet.getRow(0) != null) {
totalColumn = sheet.getRow(0).getPhysicalNumberOfCells();
}
for (int r = 0; r < totalRows; r++) {
Row row = sheet.getRow(r);
if (row == null) {
continue;
}
ArrayList<String> rowList = new ArrayList<String>();
for (int c = 0; c < totalColumn; c++) {
Cell cell = row.getCell(c);
// 可根据数据类型设置数据的显示格式
rowList.add(cell.toString());
}
result.add(rowList);
}
}
// 打印到控制台
for (ArrayList<String> arrayList : result) {
for (String string : arrayList) {
System.out.print(string +"\t");
}
System.out.println();
}
读取的excel文件:
控制台输出:
设置数据类型格式:
将代码块a 23行改成
rowList.add(getCellValue(cell));
getCellValue(Cell cell)方法如下(代码块b):
private static String getCellValue(Cell cell) {
String cellValue = "";
if (cell == null) {
return cellValue;
}
// 处理数字型 可自行设置格式
if (Cell.CELL_TYPE_NUMERIC == cell.getCellType()) {
cellValue = NumberFormat.getInstance().format(cell.getNumericCellValue())+ ".00";
}
// 处理布尔型
else if (Cell.CELL_TYPE_BOOLEAN == cell.getCellType()) {
cellValue = cell.getBooleanCellValue() ? "是" : "否";
}
// 处理其他数据类型
else {
cellValue = cell.toString();
}
return cellValue;
}
再运行代码块a,输出:
如此可设置数据的表现格式
读取
excel2007:
将代码块a 02行的文件换成2007版本的excel文件:
String file
= "C:\\Users\\LONMID\\Desktop\\POI\\pirate.xlsx";
2007版本的excel文件如图:
将代码块a 05行代码改成:
Workbook wb = new XSSFWorkbook(fis);
再次运行代码块a,输出结果:
导出
excel文件
:
控制器代码(控制器url:"
/data.do")代码块c:
@RequestMapping(params = "action=export2003")
public void write2003(HttpServletResponse response){
OutputStream out = null;
try {
out = response.getOutputStream();
String fileName = "pirate"+new Date().getTime() + ".xls";// 生成的excel文件
String tempFile = "C:\\Users\\LONMID\\Desktop\\POI\\temp.xls";// 模版文件
Workbook wb = new HSSFWorkbook(new FileInputStream(tempFile));
List<ArrayList<String>> data = createData();// 生成数据
if(wb!=null&&data != null){
Sheet sheet = wb.getSheetAt(0);
for (int i = 0; i < data.size(); i++) {
ArrayList<String> list = data.get(i);
Row row = sheet.createRow(i+1);
for (int j = 0; j < list.size(); j++) {
row.createCell(j).setCellValue(list.get(j));
}
}
}
response.setHeader("Content-disposition", "attachment; filename=" + fileName);
response.setContentType("application/msexcel;charset=UTF-8");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
wb.write(out);
out.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (out != null) {
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
jsp文件代码片段: <a href="${contextPath}/data.do?action=export2003">点击导出至Excel2003文件</a>
模板文件:
导出文件截图:
|
相关推荐
Apache POI导入和导出Excel文件
在本示例"SSM框架利用poi导入导出Excel文件 demo"中,我们将探讨如何在SSM项目中使用Apache POI库来实现Excel文件的导入与导出功能。 Apache POI是一个流行的开源库,它允许开发者在Java应用程序中创建、修改和显示...
Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 Excel 文件。在本文中,我们将详细介绍如何使用 Java POI 实现 Excel 导入导出功能。 1. 什么是 Java ...
标题提到的"poi导入导出Excel表格的所以jar包"指的是使用Apache POI库进行Excel操作所需的依赖库。 1. **poi-3.8-20120326.jar**: 这是Apache POI的主要核心库,包含了处理Excel文件的核心类和方法。例如,你可以...
导出Excel功能则涉及创建新的Excel文件并填充数据。同样,我们需要创建`Workbook`,然后添加`Sheet`,接着在`Sheet`上创建`Row`和`Cell`。例如,以下代码展示了如何创建一个简单的Excel表格: ```java import org....
导出Excel的过程则相反。首先,你需要创建一个新的Workbook对象,然后创建Sheet和Row,填充Cell数据。最后,使用Workbook的write方法将数据写入到OutputStream中,可以是文件流或内存流,从而生成Excel文件。 除了...
Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,包括Excel。...通过学习和理解这个"ImportExcel"实例,你可以掌握如何在实际项目中导入和导出Excel数据,提升数据处理能力。
标题“poi导入导出Excel源码”和描述涉及到的核心知识点是利用Apache POI进行Excel文件的导入与导出操作。 首先,让我们详细了解Apache POI库。Apache POI是Apache软件基金会的一个开源项目,其主要目标是创建Java ...
这篇博客文章“Apache POI 导出excel实例”将深入探讨如何使用Apache POI库来生成Excel文件,这对于在Java环境中处理大量数据并需要导出为Excel格式的应用非常有用。 首先,我们需要导入Apache POI库到我们的项目中...
总结,"poi导入导出Excel通用工具类 兼容xls,xlsx"这个工具实现了利用Apache POI库处理Excel文件的功能,涵盖了从旧版的.xls到新版的.xlsx格式,提供了方便的导入和导出接口,使得在Java开发中处理Excel数据变得...
总之,这个项目是一个完整的Java解决方案,用于处理Excel文件的导入导出,同时具备用户友好的进度条显示。它利用了Apache POI的强大功能,结合maven的依赖管理,以及可能的GUI组件,提供了高效且直观的数据操作体验...
Java基于POI的导入导出excel功能,附带测试功能,项目基于Maven,导入即可用,带测试Main方法提供例子。 用于导入导出Excel的Util包,基于Java的POI。可将List导出成Excel,或读取Excel成List、Map,Object>,很方便...
综上所述,Apache POI 提供了强大的功能,使 Java 开发者能够轻松地进行 Excel 文件的导入导出以及模板处理。通过合理的工具类设计和最佳实践,我们可以高效地利用 POI 处理日常工作中与 Excel 相关的任务。
本项目结合了Spring Boot、MyBatis、Apache POI和MySQL,实现了Excel数据的导入导出功能,这对于数据处理和分析尤其有用。下面我们将深入探讨这些技术及其在项目中的应用。 首先,Spring Boot以其“约定优于配置”...
标题中的“poi导入导出Excel”指的是Apache POI库在Java中用于处理Microsoft Office文档,特别是Excel文件的导入和导出功能。Apache POI是一个开源项目,它允许开发者使用Java来创建、修改和显示Microsoft Office...
标题"poi导入导出excel所需jar"和描述"java 使用poi导入导出excel所需的最新jar包"都指向了使用Apache POI进行Excel操作的关键依赖——POI相关的JAR文件。 Apache POI项目始于2001年,旨在为开源社区提供一个API,...
标题"POI导入导出excel"指的是使用Apache POI库来处理Microsoft Excel文件,包括读取(导入)和写入(导出)数据。Apache POI是一个开源项目,允许Java开发者创建、修改和显示Microsoft Office格式的文件,其中Excel...
本篇文章将详细介绍如何在Spring MVC项目中使用Apache POI库来实现Excel的导入和导出。 Apache POI是Apache软件基金会的一个开源项目,专门用于读写Microsoft Office格式的文件,包括Excel。在Java中,POI提供了API...
对于导入导出,主要关注HSSFWorkbook(老版本的Excel)和XSSFWorkbook(新版本的Excel)对象。 3. **Excel文件导入** - 创建一个Controller,接收文件上传请求,通常使用MultipartFile类型的参数。 - 使用POI读取...
本文将深入探讨如何使用ITEXT库导出PDF和Word,以及利用Apache POI库导出Excel报表文件。 首先,让我们来了解ITEXT库。ITEXT是一个开源Java库,专门用于创建和修改PDF文档。使用ITEXT,你可以方便地生成包含文本、...