TestXL.jsp
<!---->
<!---->
DownLoad
<script>
function printAll(){
location.href="<%=request.getContextPath()%>/downloadAction.do";
}
</script>
ExcelBean:
import java.io.*;
import jxl.*;
import jxl.write.*;
import jxl.format.*;
import java.util.*;
import javax.servlet.http.HttpServletResponse;
/*
用于Struts结构中的Excel文件写操作,当但击“导出按钮”时可以直接在客户端导出Excel文件并提示保存
使用方法:
在action类中加入:
ExcelBean eb = new ExcelBean();
if(vect.size()>0){
eb.exportToExcel(response, fname, sheetname, titles, vect); //调用生成excel文件bean
}
参数:
response:action类中的HttpServletResponse;
filename:要生成的保存的缺省的Excel文件名
sheetname:要保存的工作表的名称
titles:工作表中的表格横向标题
vect:数据行
*/
public class ExcelBean {
public ExcelBean() {}
public boolean exportToExcel(HttpServletResponse response,String filename,String sheetname,String[] titles,Vector vect) throws Exception {
OutputStream os = null;
boolean b1 = true ;
try {
os = response.getOutputStream(); //取得输出流
response.reset(); //清空输出流
response.setHeader("Content-disposition","attachment; filename=" + filename + ".xls"); //设定输出文件头
response.setContentType("application/msexcel"); //定义输出类型
} catch (IOException ex) {
b1= false;
System.out.println("流操作错误:"+ex.getMessage());
}
WritableWorkbook workbook = null;
try {
//创建新的Excel 工作簿
workbook = Workbook.createWorkbook(os);
//在Excel工作簿中建一工作表,其名为:第一页
jxl.write.WritableSheet wsheet = workbook.createSheet(sheetname, 0); //sheet();
WritableFont font = new WritableFont(WritableFont.ARIAL, 14,
WritableFont.BOLD, false,
jxl.format.UnderlineStyle.
NO_UNDERLINE,
jxl.format.Colour.BLACK);
WritableCellFormat format = new WritableCellFormat(font);
for (int i = 0; i < titles.length; i++) {
Label wlabel1 = new Label(i, 0, titles[i], format); //行、列、单元格中的文本、文本格式
wsheet.addCell(wlabel1);
}
font = new jxl.write.WritableFont(WritableFont.createFont("宋体"), 12,
WritableFont.NO_BOLD, false,
jxl.format.UnderlineStyle.
NO_UNDERLINE,
jxl.format.Colour.BLACK);
format = new jxl.write.WritableCellFormat(font);
for (int i = 0; i < vect.size(); i++) { // 在索引0的位置创建行(最顶端的行)
String[] sdata = (String[]) vect.elementAt(i);
for (int j = 0; j < sdata.length; j++) { //在索引0的位置创建单元格(左上端)
Label wlabel1 = new Label(j, i, sdata[j], format); //行、列、单元格中的文本、文本格式
wsheet.addCell(wlabel1);
System.out.println(sdata[j] + ":::" + sdata[j]);
}
}
workbook.write(); //写入文件
} catch (WriteException ex1) {
b1 = false;
System.out.println("WriteException:"+ex1.getMessage());
} catch (IOException ex2) {
b1 = false;
System.out.println("IOException:"+ex2.getMessage());
}
workbook.close();
os.close();
return b1;
}
}
DownloadAction:
import org.apache.struts.action.*;
import javax.servlet.http.*;
import com.segsec.base.ExcelBean;
import com.segsec.data.basedata;
import java.util.Vector;
/**
*
Title:DownloadAction
*
Description: QRRSMMS
*
Copyright: Copyright (c) 2004 jiahansoft
*
Company: jiahansoft
* @author wanghw
* @version 1.0
*/
public class DownloadAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
basedata databean = new basedata();
Vector vect = new Vector();
boolean b1= false;
try {
String fname = "test"; //Excel文件名
String[] titles = {"车牌号", "车辆类型", "用户帐号", "车台号"}; //标题
String sheetname = "车辆列表";
ExcelBean eb = new ExcelBean();
vect = databean.QuerySimilarVehicleInfoByAdminer();
if(vect.size()>0){
b1 = eb.exportToExcel(response, fname, sheetname, titles, vect); //调用生成excel文件bean
}
} catch (Exception e) {
System.out.println(e);
}
if(b1){
return mapping.findForward("display");
}else{
return mapping.findForward("failure");
}
}
}
basedata:
import java.sql.PreparedStatement;
import java.util.Vector;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Connection;
public class basedata {
public Vector QuerySimilarVehicleInfoByAdminer(){
Vector vect = new Vector();
int i = 0;
Connection conn = null;
PreparedStatement pstam =null;
ResultSet rs =null;
String url = "jdbc:oracle:thin:@90.0.8.2:1521:ORCL";
String username = "gisap";
String password = "1";
String drivers = "oracle.jdbc.driver.OracleDriver";
String sqlStr = "SELECT V.NUMBER_PLATE,v.vehicletype,A.ADMINER,U.CALL_LETTER "
+" FROM T_ADMINER_UNIT AU,T_ADMINER A,T_VEHICLE V,T_UNIT U "
+" WHERE A.ADMINERID=AU.ADMINERID"
+" AND A.ADMINER ='master' "
+" AND AU.UNITID = U.UNITID "
+" AND U.UNITID = V.UNITID "
+" ORDER BY V.NUMBER_PLATE ";
try{
Class.forName(drivers);
conn = DriverManager.getConnection(url, username, password);
pstam = conn.prepareStatement(sqlStr);
rs = pstam.executeQuery();
int collength = rs.getMetaData().getColumnCount();
while (rs.next()) {
collength = rs.getMetaData().getColumnCount();
String[] rowdata = new String[collength];
for (int k = 1; k <= collength; k++) {
rowdata[k - 1] = rs.getString(k); //new String(rs.getString(k).getBytes("ISO-8859-1"), "GBK"); //
}
vect.add(rowdata);
}
}catch(Exception e){
System.out.println("QuerySimilarVehicleInfoByAdminer Error!"+e.getMessage());
}
finally{
try{
rs.close();
pstam.close();
conn.close();
}catch(Exception e){}
}
return vect;
}
public static void main(String[] args) {
basedata basedata = new basedata();
}
}
分享到:
相关推荐
在本项目中,“网上银行系统Struts+hibernate+jxl”采用了经典的Java Web开发技术栈,包括Struts框架、Hibernate持久化框架以及jxl库,这三者共同构建了一个功能强大的后台管理系统。 首先,Struts是一个开源的MVC...
在"struts2+jxl导出excel"的场景中,我们将讨论如何利用Struts2框架与JXL库配合,实现从web应用中导出数据到Excel的工作。 首先,我们需要理解Struts2的动作(Action)和结果(Result)。动作是处理用户请求的核心...
在"Struts2+JXL 下载 Excel 文档"的场景中,开发者通常会创建一个Action,这个Action负责生成Excel文档并提供下载。用户通过浏览器访问特定URL,Struts2框架接收到请求后,会路由到相应的Action。Action内部会利用...
Struts2是一个基于MVC(Model-View-...综上所述,结合Struts2、POI和JXL,我们可以构建出强大的数据导入导出功能,以及动态生成和下载Excel报表的Web应用。这对于数据驱动的业务来说,提供了极大的便利性和灵活性。
Struts2是一个流行的Java web框架,它为开发者提供了一种结构化的方式来构建应用程序,而JXL则是一个Java库,用于读取、写入和修改Excel电子表格文件。这篇博客文章结合了这两个技术,展示了如何在Struts2应用中生成...
总结起来,这个项目利用Struts2框架实现了图片的上传功能,通过Jakarta Multipart解析器处理大文件,同时结合jxl库,可以进一步处理Excel文件,满足了在Web应用中进行文件操作的需求。这个组合在实际开发中非常实用...
标题 "SSH+JXL 下载 Excel 文档" 涉及到的是在Java开发中,使用Spring、Struts2框架以及JXL库来实现Excel文件的下载功能。SSH(Spring、Struts2、Hibernate)是Java领域常见的MVC架构,而JXL是一个流行的Java库,...
本文将详细介绍如何利用Struts2、Hibernate(简称S2H)结合jxl.jar库来实现在Web应用中导出Excel文件的功能。 #### 二、环境搭建与准备工作 1. **项目搭建**: - 创建一个新的Struts2项目。 - 配置好Struts2和...
api.jar jxl.jar itext-1.3.jar poi-2.5.1.jar cos.jar velocity-1.5.jar velocity-tools-view-1.3.jar commons-codec.jar antlr.jar commons-beanutils.jar commons-digester.jar...
Struts2 框架与 Apache 的 JXL 库整合,可以方便地实现在 Java Web 应用中导入和导出 Excel 表格的功能。Apache JXL 是一个强大的 Java 库,专门用于读写 Microsoft Excel 文件,使得开发者无需依赖 Office API 就能...
Struts2是一个强大的MVC(模型-视图-控制器)框架,被广泛应用于Java Web开发中,它提供了灵活的控制层结构,使得开发者能够构建可维护性和可扩展性极强的Web应用程序。Excel则是一种流行的电子表格软件,常用于数据...
jxl+struts2下载execl创建多个sheet
7. **部署与运行**: 下载项目后,你需要将所有依赖的库(如Struts2、POI或JXL的jar文件)添加到项目的类路径中,然后将项目部署到支持Servlet容器(如Tomcat)的服务器上,根据提示修改Excel文件路径,即可运行程序...
5. `jxl.jar`:JExcelAPI是另一个处理Excel文件的库,可能在这个项目中作为POI的替代或者补充。 6. `struts.jar`:这可能是Struts1的库,因为Struts2的jar文件通常以`struts2-`开头。 7. `mysql-connector-java-...
正在使用的java web项目中的SSH框架包,这些包没有冲突,是基于spring3+struts2.2+hibernate3的,还有jdbc驱动、mysql连接驱动jdbc包、mail包、dwr包、upload.jar包等。
【标题】"jxl报表 代码应用"涉及的是在Java编程环境中使用jxl库来创建和处理Excel报表的实践案例,特别关注的是如何在SSH(Struts、Hibernate、Spring)框架下集成jxl进行数据展示。 【描述】"jxl实现的SSH架构的...
struts2导出excel java 导出excel: JXL_excel: 可以直接在elipse下运行的例子 可以直接导出excel文件(包含所需的jar包) CSharpJExcel: 是JXL的官方下载的 包括详细的文档 和jar包
第19章 生成保表(Struts 2.X+Hibernate+JXL) 第20章 数据格式转换(Struts 2.X+Hibernate+Dom4j) 第21章 用户维护功能(Struts 2.X+iBATIS) 第22章 用户登录模块(Struts 2.X+Guice+国际化) 第3篇 项目案例实战...
第19章 生成保表(Struts 2.X+Hibernate+JXL) 第20章 数据格式转换(Struts 2.X+Hibernate+Dom4j) 第21章 用户维护功能(Struts 2.X+iBATIS) 第22章 用户登录模块(Struts 2.X+Guice+国际化) 第3篇 项目案例实战...
第19章 生成保表(Struts 2.X+Hibernate+JXL) 第20章 数据格式转换(Struts 2.X+Hibernate+Dom4j) 第21章 用户维护功能(Struts 2.X+iBATIS) 第22章 用户登录模块(Struts 2.X+Guice+国际化) 第3篇 项目案例实战...