`
huibin
  • 浏览: 754380 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

利用Java导入并操作 Microsoft Excel 文档

    博客分类:
  • JAVA
阅读更多

 JExcel 是一个API, 支持从Java应用程序中操作Excel工作表、工作薄等。JExcel API 是自2003年以来出现的一个稳定的开放源代码产品。

  JExcel 是一个API, 支持从Java应用程序中操作Excel工作表、工作薄等。JExcel API 是自2003年以来出现的一个稳定的开放源代码产品。API 简单易操作而且功能强大。除了基本功能如读取,输入,修改Excel 表之外,它还提供了更为复杂的功能如读取和输入公式,支持字体、数字、日期的格式化,支持单元格的阴影,嵌入以及颜色的操作,复制图表,支持插入和复制图像到Excel表格中。

  JExcelApi 主页:http://jexcelapi.sourceforge.net/.

  JExcelApi JAR, jxl.jar下载:http://www.java2s.com/Code/JarDownload/jxl.jar.zip.

  如何应用 API

  不用大费周章的,在这里我举出两个简单的例子。 第一个例子会展示如何1)导入一个Excel表2)读取并操作它的数据。第二个例子会展示如何导出电子表格到客户端。

  示例1:导入和操作Excel 表

  为了简化文件访问操作,我决定在我所举的例子中使用的Struts。

  以下表格将被导入例子中,修改,然后返回客户端。

  利用Java导入并操作 Microsoft Excel 文档

  1. 建立文件上传表

  第一步是建立一个JSP, 能允许客户端选择表格上传到服务器(见列表1)。

  列表 1: Excel 文件上传表格

  

    < %@ taglib uri="/WEB-INF/tlds/struts-html.tld"

  prefix="html"%>

  < html>

  < head>

  < title>Struts File Upload< /title>

  < html:base />

  < /head>

  < html:form action="/uploadExcel" method="post"

  enctype="multipart/form-data">

  < table>

  < tr>

  < td align="left" colspan="3">< font color="red">

  < html:errors />< /font>

  < /td>

  < /tr>

  < tr>

  < td align="right">Select Microsoft Excel File : < /td>

  < td>

  < html:file property="excelFile"/>

  < /td>

  < td>

  < html:submit>Upload File< /html:submit>

  < /td>

  < /tr>

  < /table>

  < /html:form>

  < /body>

  < /html>

   

Struts < html:file> 标签允许你编辑数据org.apache.struts.upload.FormFile(见第二步)

  表格内容类型"multipart/form-data" 是用来提交包括非ASCII数据和二进制数据的文件。

  2. 创建Struts Action 表(Struts Action Form)

  第二步是创建一个可以容纳上传文件的Action Form(见列表2)

  列表 2: Struts上传表格功能表

  

      package test.excel.form;

  import org.apache.struts.action.*;

  import org.apache.struts.upload.FormFile;

  public class StrutsUploadForm extends ActionForm {

  private FormFile excelFile;

  public FormFile getExcelFile() {

  return excelFile;

  }

  public void setExcelFile(FormFile excelFile) {

  this.excelFile = excelFile;

  }

  }

  3. Struts Action 代码(Struts Action Code)

 

  Struts action 会有一个代码从StrutsUploadForm 功能表中得到文件,检查content type并且通过文件的输入流到达Workbook class。Workbook是代表了一个工作薄的JExcelApi class。这个种类包括各种各样的工厂方法(factory methods并且提供了多种可以提供工作表入径的accessors(见列表3)。

  列表 3: Excerpt from ExcelUploadAction.java struts action class 从ExcelUploadAction.java struts action class摘录

  

      ...

  StrutsUploadForm uploadForm = (StrutsUploadForm)form;;

  FormFile myFile = uploadForm.getExcelFile();

  Workbook workbook =

  Workbook.getWorkbook(myFile.getInputStream());

  ...

  现在你可以把工作表加进Workbook class,你就可以开始遍历其行。以下的代码将会从工作簿中得到第一个工作表,还有很多行和列并且重复每一行,显示每格的内容。(见列表4)

Listing 4: 从ExcelUploadAction.java struts action class摘录

  

      ...

  Sheet sheet = workbook.getSheet(0);

  int numberOfRows = sheet.getRows();

  int numberOfColumns = sheet.getColumns();

  for (int row = 0; row < numberOfRows; row ++ ) {

  for (int column = 0; column < numberOfColumns; column ++ ) {

  Cell cell = sheet.getCell(column,row);

  System.out.print(cell.getContents() + " | ");

  }

  System.out.println();

  }

  ...

  在以下的代码片段中,你会在列名“Age”下获取所有价值并且计算平均年龄(见列表5)。

 

  列表 5: 在Java 中计算平均年龄

  

      ...

  LabelCell labelCell = sheet.findLabelCell("Age");

  int ageColumnNumber = labelCell.getColumn();

  double ageSum = 0;

  for (int row = 1; row < numberOfRows; row ++ ) {

  Cell cell = sheet.getCell(ageColumnNumber,row);

  if (CellType.NUMBER.equals(cell.getType())){

  ageSum = ageSum + Integer.parseInt(cell.getContents());

  }

  }

  double averageAge = ageSum / (numberOfRows - 1);

  System.out.println("Sum Age : " + ageSum);

  System.out.println("Average Age : " + averageAge);

  ...

  示例2: 从Servlet输出一个Excel文件

 

  在这个例子中,你会创建一个Excel 表并且把它交回到浏览器。

  在以下的例子中你将会看到,用JExcelApi创建一个Excel表是一件非常简单的流程。在你用的doPost()方法中,设置HTTP Response content type到"ms-excel" 并且设置Content-Disposition 到"attachment",然后提供附件名称(见列表6)。

  列表 6: 从Servlet输出一个Excel文件

  

      ...

  response.setContentType("application/vnd.ms-excel");

  response.setHeader("Content-Disposition",

  "attachment; filename=sampleName.xls");

  WritableWorkbook writableWorkbook =

  Workbook.createWorkbook(response.getOutputStream());

  WritableSheet writableSheet =

  writableWorkbook.createSheet("Demo", 0);

  writableSheet.addCell(new Label(0, 0, "Hello World"));

  writableWorkbook.write();

  writableWorkbook.close();

  ...

  这个示例展示出创建一个电子表"sampleName.xls"其中包括一个工作表,这个工作表中又包括了在A1格中有"Hello World"文本。

 

分享到:
评论

相关推荐

    利用Java 创建和读取Excel文档

    无论是数据导入、导出还是数据分析等场景,掌握如何使用Java来操作Excel文档都是非常有用的技能。本文将详细介绍如何使用Java进行Excel文档的创建和读取,并通过一个具体的示例来演示这一过程。 #### 创建Excel文档...

    java实现Excel数据导入到mysql数据库.zip

    本项目"java实现Excel数据导入到mysql数据库"旨在利用Java技术将Excel表格中的数据高效地导入到MySQL数据库,并且在数据库中存在相同数据时进行更新,同时也支持将数据库中的数据导出到Excel表中。这个过程涉及到多...

    java poi 导入大数据量Excel数据 防止内存溢出处理.zip

    Java中的Apache POI库是用于读取和写入Microsoft Office格式文件,特别是Excel文档的流行工具。然而,当处理大数据量的Excel文件时,POI可能会导致内存溢出(Out of Memory, OOM),因为默认情况下它会将整个工作簿...

    java导入excel表格

    通过以上步骤,你可以轻松地在Java项目中导入和操作Excel表格。结合源码和工具,可以构建出高效的数据处理系统。在开发过程中,参考Apache POI的官方文档和相关博客文章(如给出的链接),可以帮助你解决具体问题并...

    利用java往excel中插入图片

    在Java编程中,Apache POI库是一个非常实用的工具,它允许我们操作Microsoft Office文档,包括Excel(.xlsx和.xls格式)。本篇文章将详细介绍如何利用Java和Apache POI库向Excel工作表中插入图片。 首先,我们需要...

    java操作word文档和excel文档的相关jar文件

    在Java编程环境中,处理Word和Excel文档通常需要借助第三方库,因为Java标准库并不直接支持这些功能。在给定的压缩包文件中,包含了三个重要的jar文件:jxl.jar、dom4j.jar和jdom.jar,它们分别对应于对Excel和XML...

    POI实现Excel导入导出并附带加载进度条

    本项目通过Apache POI实现了Excel的导入与导出功能,并在操作过程中加入了进度条展示,增强了用户体验。 首先,Apache POI的核心类HSSFWorkbook和XSSFWorkbook分别用于处理老版本的.xls和新版本的.xlsx文件。在导入...

    java 导入导出Word、excel的Jar包+例子

    在Java编程环境中,处理Word和Excel文件通常需要借助第三方库,因为Java标准库并不直接支持这些功能。在你提供的信息中,“java 导入导出Word、excel的Jar包+例子”显然涉及到两个主要的Java库:Apache POI和一个名...

    java操作excel文档jar包

    在Java编程环境中,处理Excel文档是一项常见的任务,特别是在数据导入导出、数据分析或者报表生成等场景。本主题聚焦于如何使用Java操作Excel文档,特别是通过引入特定的jar包来实现这一功能。Java提供了多种库来...

    java poi操作excel批量导入导出项目需要的jar包

    Java中的Apache POI库是处理Microsoft Office文档的强大工具,尤其在Excel操作方面。它允许开发者在Java应用程序中创建、修改和读取Excel文件。在进行批量导入和导出Excel数据时,Apache POI是一个非常实用的选择。...

    java 批量导入excel

    总之,Apache POI和相关库为Java开发人员提供了强大的工具,使他们能够在不依赖于Microsoft Office的情况下,有效地处理Excel文件,特别是进行大规模的数据导入操作。通过合理利用这些库,开发者可以轻松地实现从...

    java xml excel文件导入导出

    本文将详细讲解如何使用Java进行Excel和XML文件的解析及操作。 一、Excel文件处理 1. **Apache POI库**:Apache POI是一个流行的Java库,用于读写Microsoft Office格式的文件,特别是Excel(.xls和.xlsx)。通过...

    java实现在Excel中插入图片

    总结起来,Java实现Excel中插入图片的核心步骤包括:导入Apache POI库,创建并操作工作簿和工作表,读取和创建图片对象,创建绘图工作表,设置图片位置,最后保存工作簿。在实际开发中,可能还需要处理图片格式转换...

    java_导入导出_Excel_word

    ### Java导入导出Excel与Word技术详解 #### 一、Java操作Excel技术 在Java中,我们可以使用Apache POI库来实现对Excel文件的操作。Apache POI是一个流行的API,它允许程序员创建、修改和显示MS Office文件(如...

    java批量获取excel数据导入word文档中.zip

    总结起来,这个Java程序利用了Apache POI库,实现了批量从Excel文件中提取数据并导入Word文档的功能,极大地提高了工作效率,减少了重复性劳动。对于熟悉Java和Apache POI的开发者来说,这是一个很好的实践案例,...

    Java poi 实现excel导入导出

    在提供的“java-excel导入导出”压缩包中,可能包含了示例代码、说明文档以及测试数据,可以帮助初学者快速理解和使用Java POI进行Excel操作。通过学习和实践这些示例,你可以掌握Java POI库的基本用法,并能灵活...

    java导入Excel的数据的同时导入Excel里面的图片-测试demo.zip

    在Java编程中,处理Excel文件是一项常见的任务,特别是在数据导入和导出的场景下。...这个"java导入Excel的同时导入图片-测试demo"应该包含了一个完整的示例,演示了上述步骤,你可以根据这个示例代码进行学习和实践。

    java实现excel导入导出.pdf

    Java 实现 Excel 导入导出 Java 是一种流行的编程语言,Excel 是一种常用的电子表格软件。在 Java 中,实现 Excel 导入导出可以使用多种方式,本文将介绍使用 JXL 和 POI 两个库实现 Excel 导入导出的方法。 使用 ...

Global site tag (gtag.js) - Google Analytics