摘自:http://www.xasxt.com/index.php/article/jiaocheng/shipin_1801.html
不用大费周章的,在这里我举出两个简单的例子。 第一个例子会展示如何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"文本。
分享到:
相关推荐
JExcel2.0的API文档 自己根据官方文档制作,供有兴趣的朋友分享
jxl,通过java操作excel表格的工具类库。这是jxl的源代码和jar。jxl全称jexcel。官方版。
jExcel学习,如果在你的项目中需要解析 Excel 文件,比如,作为用户上传的模板进行解析。那么选择 jExcel 将是一个不错的决定!虽然 Apache 的 Commons 开源组件包 POI 也能完成相同的功能,但 jExcel 小巧、对中文...
Java Excel是一开放源码项目,通过它Java...使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、Servlet来调用API实现对Excel数据表的访问。
jExcel是一个轻量级的javascript插件,用于创建与Excel兼容并基于Web的交互式表格和电子表格
java 处理excel工具,用于读取Excel内容,并进行必要的处理-java processing excel tool for Excel to read the content and the necessary processing
jxl jexce api jxl jexce api
在java程序中操作Excel的API
可以从excel复制并直接粘贴到jExcel CE电子表格,反之亦然。 很容易集成任何第三方JavaScript插件来创建您自己的自定义列、自定义编辑器,并在应用程序中自定义任何特性。 jexcelce通过其本机列类型有很多不同的输入...
jexcel导出excel文件的demo。版本是6.120.包括读取excel,创建新excel,复制excel三个,其中创建excel又分为普通信息,数字,时间,格式化信息,格式化数值,格式化时间等等,有设置单元格大小,单元格样式,单元格...
jExcel是一个轻量级的javascript插件,用于创建与Excel兼容并基于Web的交互式表格和电子表格 jExcel CE 是一个轻量级的 Vanilla JavaScript 插件,用于创建与 Excel 或任何其他电子表格软件兼容的基于 Web 的交互式 ...
您可以从excel复制并直接粘贴到jExcel CE电子表格,反之亦然。 集成任何第三方JavaScript插件来创建您自己的自定义列,自定义编辑器,以及将任何功能自定义到您的应用程序中都是非常容易的。 jExcel CE通过其本机列...
与jexcel图书馆,您可以与工作簿文件(将XLS , xlsx ) ,作业簿,电子表格,工作或什至特定范围的细胞在Java应用程序。修改细胞的价值观,细胞数量的格式,公式等,您还可以打印Excel文件。另外,您也可以自订细胞...
Java开源Excel读写库JExcel的.Net实现,在JExcel基础上改写,可以不需要Excel程序就能读写Excel文件。
jexcel.js是一款轻量级的类似Excel的jquery电子表格插件。你可以同js数组、json数据或CSV文件来为jexcel表格提供数据,你甚至可以直接从一个Excel表格中直接复制粘贴数据到jexcel表格中。
jexcel.js是一款轻量级的类似Excel的jquery电子表格插件。你可以同js数组、json数据或CSV文件来为jexcel表格提供数据,你甚至可以直接从一个Excel表格中直接复制粘贴数据到jexcel表格中。
jExcel具体实现
Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。
JExcel 实用指南(英),实用开发指南
JExcelAPI java 用于操作excel的一些API JAr包