servlet生成Excel格式的数据:首先导入jxl.jar包。
在servlet中处理:
public void doPost(HttpServletRequrequest, HttpServletResponse response)
throws ServletException, IOException {
List theDataList = new ArrayList();
response.setContentType("text/html");
response.addHeader("Content-Disposition", "inline; filename="名称".xls");
JxlExcelWriter jxlExcelWriter = new JxlExcelWriter();
//封装数据
Object [] data = {temap.get("标题1内容"),temap.get("标题2内容"),temap.get("标题3内容"),temap.get("标题4内容"),temap.get("标题5内容"),temap.get("标题6内容")};
theDataList.add(data); //数据对象添加到List对象中
String[] theFirstCells = { "标题1", "标题2","标题3", "标题4", "标题5", "标题6"};
jxlExcelWriter.writerExcel(out, theDataList, theFirstCells);
out.flush();
out.close();
}
jxlExcelWriter类:
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
public class JxlExcelWriter {
public void writerExcel(OutputStream out, List list, String[] title) throws IOException {
if (list == null)
throw new IllegalArgumentException("写excel流需要List参数!!!");
try {
WritableWorkbook workbook = Workbook.createWorkbook(out);
WritableSheet ws = workbook.createSheet("sheet1", 0);
int rowNum = 0;
if (title != null) {
putRow(ws, 0, title);
rowNum = 1;
}
for (int i = 0; i < list.size(); i++, rowNum++) {
Object[] cells = (Object[]) list.get(i);
putRow(ws, rowNum, cells);
}
workbook.write();
workbook.close();
} catch (IOException e) {
System.out.println("jxl write file exception, cause by" + e.getMessage());
} catch (RowsExceededException e) {
System.out.println("RowsExceededException, cause by" + e.getMessage());
} catch (WriteException e) {
System.out.println("writeException,cause by" + e.getMessage());
}
}
private void putRow(WritableSheet ws, int rowNum, Object[] cells) throws RowsExceededException, WriteException {
for (int j = 0; j < cells.length; j++) {
Label cell = new Label(j, rowNum, "" + cells[j]);
ws.addCell(cell);
}
}
/**
* 将二维数组的数据写到excel
* @author cyb
* @throws WriteException
* @throws RowsExceededException */
public void writeToExcel(File theFile, List theDataList, String[] title) throws RowsExceededException, WriteException {
WritableWorkbook theExcelFileWorkbook;
try {
theExcelFileWorkbook = Workbook.createWorkbook(theFile);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("创建excel异常!!");
return;
}
WritableSheet theExcelFileSheet = theExcelFileWorkbook.createSheet("sheet1", 0);
int rowNum = 0;
if (title != null) {
putRow(theExcelFileSheet, 0, title);
rowNum = 1;
}
for (int i = 0; i < theDataList.size(); i++, rowNum++) {
Object[] cells = (Object[]) theDataList.get(i);
try {
putRow(theExcelFileSheet, rowNum, cells);
} catch (RowsExceededException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("超出excel的最大行数!!");
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("写入excel异常!!");
return;
}
}
try {
theExcelFileWorkbook.write();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
theExcelFileWorkbook.close();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
分享到:
相关推荐
在这个场景中,我们讨论的是如何使用Servlet和JSP(JavaServer Pages)来处理Excel文件的导入和导出,尤其是与MySQL数据库的交互。Excel文件有两种主要格式:XLS(Excel 97-2003工作簿)和XLSX(Excel 2007及以后...
总结来说,"JSP SERVLET 导出数据库内容到EXCEL"是一个典型的Java Web应用场景,结合了JSP的视图呈现、Servlet的业务处理和数据库操作,以及第三方库Apache POI的文件生成能力,为企业级应用提供了强大的数据导出...
本场景中,"servlet+api导出excel"指的是利用Servlet API来实现从数据库(这里是Oracle)中获取数据并导出为Excel文件供用户下载的功能。下面将详细解释这个过程涉及的技术点。 首先,我们需要了解Servlet API的...
在Excel导入导出过程中,Servlet将处理JSP提交的文件上传请求,读取Excel数据,并将数据保存到数据库或生成新的Excel文件。 Apache POI是Apache软件基金会的一个开源项目,专门用于读写Microsoft Office格式的文件...
这个实例提供了两种方法来导出Excel文件:通过Servlet和通过main方法。这两种方法都是在Java环境中操作Excel数据的有效方式。 首先,让我们详细了解一下Apache POI库。POI提供了一个API,允许开发者在Java应用程序...
在Java编程环境中,实现Excel导出功能是一项常见的需求,尤其在数据处理和报表生成时。以下将详细讲解如何使用Java实现简单的Excel导出功能。 首先,我们需要了解的是Java中用于处理Excel文件的主要库:Apache POI...
标题中的"excel导出的js"指的就是使用JavaScript库或方法来生成Excel文件。JavaScript是一种运行在客户端和服务器端的脚本语言,由于其强大的DOM操作能力和动态特性,常用于网页交互和前后端数据处理。对于Excel导出...
`servlet-api.jar`是Java Servlet API的库文件,这表明这个项目可能是在服务器环境中运行,通过Servlet技术接收请求并返回Excel导出的结果。Servlet是Java Web开发中的基础组件,用于处理HTTP请求,并可以将处理结果...
在Excel导出场景下,Action类将执行导出逻辑,并通过结果配置将生成的Excel文件返回给浏览器。 2. **Spring**:Spring可以作为依赖管理容器,将Struts2的Action与服务层(Service)组件进行依赖注入。同时,Spring...
在J2EE项目开发中,Excel导出是一项常见的需求,特别是在数据管理和报告生成场景中,如资产管理、财务报表等。这个描述提及的示例提供了一个完整的解决方案,包括所需的Java类和依赖库(Jar包),帮助开发者实现从...
总结来说,这个学生管理系统是一个综合运用了Java Web技术,包括jsp、servlet和MySQL数据库的项目,具备数据挖掘、文件上传下载、数据库及Excel数据的导入导出等功能。对于学习Java Web开发或进行毕业设计的学生而言...
在本文中,我们将深入探讨如何使用Servlet来实现文件导出的功能。这个话题对于任何需要与用户交互并提供文件下载服务的Web应用都是至关重要的。 首先,理解Servlet的工作原理至关重要。Servlet是一个Java类,它扩展...
在这个主题中,我们将深入探讨如何使用Java技术栈,特别是基于IDEA开发环境,来实现在JSP和Servlet中进行Excel与数据库之间的数据导入和导出。 首先,我们需要了解Java中用于处理Excel文件的库,如Apache POI。...
在"Struts2+POI实现Excel导出"的场景中,开发者可以利用这两个工具为用户提供数据导出到Excel的功能。以下是一些关键知识点: 1. **Struts2框架**:Struts2是Action Servlet的一种实现,它是基于拦截器的MVC框架,...
使用Echarts通过Servlet导出图片,并将图片保存到Excel中
2. **Web环境下的Excel导出与下载**: 在Web环境中,我们需要考虑HTTP响应和浏览器交互。在Servlet或Spring MVC等框架中,你可以创建一个HTTP响应,设置合适的MIME类型(如"application/vnd.ms-excel"),然后将...
在后端Java代码中,你需要创建一个Servlet或者Controller来处理导出请求。首先,创建一个`HSSFWorkbook`对象表示Excel工作簿,然后添加`HSSFSheet`作为工作表,并填充数据到`HSSFRow`和`HSSFCell`中。以下是一个...
综上所述,这个压缩包提供了一个基础的文件上传示例,结合前端的AJAX和后端的Servlet,可以实现Excel文件的导入和导出功能。在实际项目中,可以根据需求进行扩展,如增加错误处理、进度显示、多文件上传等功能,提高...
在Java开发中,导出Excel是一项常见的需求,尤其在数据报表和数据分析场景中。本示例涉及的主题是“java导出excel复杂表头”,这意味着我们要处理的不是简单的单级表头,而是包含多级或者多层次结构的表头。在描述中...
在Servlet环境下,你可以将生成的Excel文件作为HTTP响应的附件发送给客户端。首先创建`HttpServletResponse`对象,然后设置响应头信息,如Content-Disposition和Content-Type,最后将工作簿写入输出流: ```java ...