`
fengqx
  • 浏览: 97984 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

最近用servlet做了一个简单导出excel程序

阅读更多
package com.software.cntrrep.EDI;

import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

import com.software.cntrrep.dao.EDIBASEINFO;
import com.software.platform.db.ConnectionManager;
import com.software.platform.db.DatabaseConnection;
import com.software.platform.db.RecordSet;
import com.software.platform.utils.BusinessDate;
import com.software.platform.utils.Util;

public class ImpEDI extends HttpServlet {
private String msg = "";

@SuppressWarnings("unchecked")
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String ids = request.getParameter("ids");
String cntruser = request.getParameter("CntrUser");
ArrayList arraylist= new ArrayList();
String[] arrcntr=cntruser.split(",");
try {
for(String cntr:arrcntr){
arraylist.add(cntr);
}
if(!Util.isSameArray(arraylist)){ //判断是否为同一用箱人
msg="ERROR:Not single CntrUser !";
}
if (arrcntr[0].equals("MSC")) {
response.setHeader("Content-Disposition","attachment;filename=MSC_"+ BusinessDate.getNoFormatTime() + ".xls");
response.setContentType("application/vnd.ms-excel");
OutputStream os = response.getOutputStream();
WritableWorkbook wwb = Workbook.createWorkbook(os);
WritableSheet wsheet = wwb.createSheet("MSC’s EDI", 1);
try {
WritableFont wfont = new WritableFont(WritableFont.ARIAL,8, WritableFont.BOLD, false,
jxl.format.UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK);
WritableCellFormat titleFormat = new WritableCellFormat(wfont);
titleFormat.setBorder(Border.ALL, BorderLineStyle.THIN);
titleFormat.setAlignment(Alignment.CENTRE);
// 设置Excel表头
String[] title = { "Container#", "Depot", "ISO", "Vessel","Voyage","POL", "Date In" , "Estimate Date", "Estimate#"
, "Seq", "Job", "Cash", "Component", "Repair", "Description", "Material", "S1", "S2", "Unit", "Quantity"
, "IX", "Damage", "Hourly Rate", "Hrs", "Mat Amt", "Cur", "Total"};
for (int i = 0; i < title.length; i++) {
wsheet.setColumnView(1, 20); // 设置单元格宽度
Label excelTitle = new Label(i, 0, title[i],titleFormat);
wsheet.addCell(excelTitle);
}
String[] arrid=ids.split(",");
ConnectionManager cm  = ConnectionManager.getInstance();
DatabaseConnection dc = cm.get();
try {
int a=1;
for(String id:arrid){
String sql=" select CNTRNO,'QDLH' ,'4310',VESSELNAME,'Voyage','POL'," +
"GATEINDATE," +
"ESTDATE,TRNSXN " +
" from EDIBASEINFO where billno='"+id+"'";
RecordSet recorda=dc.executeQuery(sql);
if(recorda.next()){
String sql2=" select rownum seq,'O','A', PARTCODE,REPCODE,DMGDESC,MATCODE,LENGTH,WIDTH,'CMT' Unit,QUANTITY,LOCCODE,DMGCODE,LABHOUR," +
" LABCOST,MATCOST,'USD',TOTALFEE from EDIGJINFO where billno='"+id+"'";
RecordSet recordb=dc.executeQuery(sql2);
while(recordb.next()){
if(recordb.isFirst()){
for(int j=0;j<9;j++){
Label excelcell=new Label(j,a,recorda.getString(j)==null?"":recorda.getString(j),titleFormat);
wsheet.addCell(excelcell);
}
}else{
for(int j=0;j<9;j++){
Label excelcell=new Label(j,a,"",titleFormat);
wsheet.addCell(excelcell);
}
}
for(int k=9;k<title.length;k++){
wsheet.setColumnView(1, 20);
Label excelcell=new Label(k,a,recordb.getString(k-9),titleFormat);
wsheet.addCell(excelcell);
}
a++;
}
recordb.close();
}
recorda.close();
}
} catch (RuntimeException e) {
e.printStackTrace();
}finally{
dc.close();
}
wwb.write();
wwb.close();
os.close();
response.flushBuffer();
} catch (RowsExceededException e) {
e.printStackTrace();
e.getMessage();
} catch (WriteException e) {
e.printStackTrace();
e.getMessage();
}
}
} catch (RuntimeException e) {
e.printStackTrace();
e.getMessage();
}
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}

}
分享到:
评论

相关推荐

    JAVA操作EXCEL,WORD 连接SQL数据库,

    代码是一个 eclipse + myeclipse 工程 最简单的JAVA操作读取excel java生成excel java读取word java连接SQL server数据库 还有一个简单的Java servlet的程序

    Servlet与JSP核心编程第2版

    6.4 各种搜索引擎的一个前端 第7章 服务器响应的生成:htip响应报头 7.1 在servlet中设置响应报头 7.2 理解http1.1响应报头 7.3 构建excel电子表格 7.4 servlet状态的持续以及页面的自动重载 7.5 使用...

    jexcelapi_2_6_12.zip

    Java Excel API是一个成熟的开放源码Java API,允许开发人员动态地读取、编写和修改Excel电子表格。现在java开发人员可以读取Excel电子表格,使用方便而简单的API修改它们,并将更改写入任何输出流(例如磁盘、HTTP、...

    DataGear数据可视化分析平台

    系统自带了一个可用于为内置数据库执行SQL语句的简单工具类org.datagear.web.util.DerbySqlClient,可以在IDE中直接运行。注意:运行前需要先停止DataGear程序。 DataGear数据可视化分析平台 更新日志: v2.9.0 ...

    JSP实用技巧集合,jsp编程的一些小技巧总结

    5. java中如何把一个目录下的文件移到另一个指定的目录? 6. 制作表格线? 7. jsp如判别一个字符在A到Z之间? 8. 得到一浮点数小数点后4位,如何写以函数截取为两位 9. 整型转字符? 10. 显示数据库的记录,点击哪个...

    Python Cookbook

    17.2 用Pyrex实现一个简单的扩展类型 597 17.3 在Python中使用C++库 598 17.4 调用Windows DLL的函数 601 17.5 在多线程环境中使用SWIG生成的模块 603 17.6 用PySequence_Fast将Python序列转为 C数组 604 17.7 ...

    java jdk实列宝典 光盘源代码

    java为数据结构中的列表定义了一个接口类java.util.list同时提供了3个实现类,分别是ArrayList、Vector、LinkedList使用; 生成不重复的随机数序列;列表、集合与数组的互相转换;java为数据结构中的映射定义一个接口...

    IntegrityTestSession:提供存储在Excel中的测试用例,测试步骤和结果的创建和上传(仅Web解决方案)

    提示:有一个类似的本地应用程序可用,请参见项目“ IntegrityExcelTestSession”用例Excel中的离线测试结果编辑器仅使用Tablet PC输入测试结果(未安装Integrity Client) 开放点:选项,选择“完整测试会话导出”...

    Java范例开发大全 (源程序)

     实例1 开发第一个Java程序 7  第2章 Java基础类型与运算符(教学视频:39分钟) 9  2.1 基础类型 9  实例2 自动提升 9  实例3 自动转换 10  实例4 常用基础类型之强制转换 11  2.2 运算符 12  实例5...

    Java范例开发大全(全书源程序)

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 关系运算符 13 实例7 逻辑...

    网管教程 从入门到精通软件篇.txt

    INT:中间代码,当一个源程序经过语法检查后编译产生一个可执行代码 IOF:Findit文档 IQY:Microsoft Internet查询文件 ISO:根据ISD 9660有关CD-ROM文件系统标准列出CD-ROM上的文件 ISP:X-Internet签字文件 ...

    基于JSP的停车场管理系统(MySQL版)

    MVC模式、JSP、Servlet、JDBC、HTML、JavaScript、CSS、JQUERY、Excel导出(POI)等。 程序功能: 1.用户:注册、个人信息管理、车辆信息维护、卡余额查看、收费标准查看、车位信息、 车辆停车、停车记录查看等。 2...

    jsp编程技巧集锦

    数字转中文 128 自动计算金额 129 JSP页面打印中使用WebBrowser控件 130 不刷新页面添加新的类别 131 鼠标滚动缩放图片 132 根据输入的表名生成输入数据表格 133 JSP表格输出到Excel 134.JSP...

    JSP学生信息管理系统(部分论文及截图).rar

    JSP学生信息管理系统是一个针对学校或教育机构设计开发的网络应用程序,旨在提供一种高效、便捷的学生信息管理解决方案。该系统基于Java Server Pages (JSP)技术构建,结合了Servlet技术计分析功能,如各班级人数...

    JAVA 范例大全 光盘 资源

    实例3 在Eclipse中创建第一个Java程序 4 常见问题 javac不是内部或者外部命令 6 常见问题 找不到类文件 6 常见问题 语法错误 7 第2章 Java基础语法 9 实例4 变量和常量 9 实例5 基本数据类型转换 10 实例6 ...

    酒店管理系统课程设计源代码(JSP的MVC模式)及数据库 内附详细说明

    采用JSP,以MVC模式编写,支持分页显示数据库中查到的数据,可导入tomcat直接用行,支持表格以EXCEL、CSV等多种方式导出. 此次添加了数据库,您只需将下载到的数据库文件导入到您的SQL Server2008中即可。 具体步骤...

    java范例开发大全(pdf&源码)

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 ...

    Java JDK实例宝典

    6 一个时钟程序 第11章 Java多媒体 11. 1 滚动的消息 11. 2 三维弹球 11. 3 贪吃蛇游戏 11. 4 Java声音处理 11. 5 媒体播放器 第12章 反射 12. 1 instanceof操作符 12. 2 获取...

    goja-doc:Goja 文件

    Gaja 介绍Goja是在 框架的基础上,以及 的扩展补充,同时参考Play 1.2系列的方式, 以COC(约定纪配置)的原则,在各个项目的开发中对使用场景的不断积累的一个快速、高效的web开发框架。主要特点如下:在 JFinal基础...

    java范例开发大全源代码

     实例1 开发第一个Java程序 7  第2章 Java基础类型与运算符(教学视频:39分钟) 9  2.1 基础类型 9  实例2 自动提升 9  实例3 自动转换 10  实例4 常用基础类型之强制转换 11  2.2 运算符 12 ...

Global site tag (gtag.js) - Google Analytics