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;
}
}
分享到:
相关推荐
3. **Excel文件生成**:为了导出Excel文件,我们可以使用Apache POI库,这是一个强大的API,用于读写Microsoft Office格式的文件,包括Excel。首先,创建一个新的`XSSFWorkbook`对象表示Excel工作簿,然后创建` ...
总的来说,结合JSP、jQuery UI、Servlet和Apache POI,我们可以构建一个功能完备且用户友好的Excel导入导出系统,满足企业级应用的需求。这个过程既锻炼了前端交互设计,也加深了对后端数据处理和文件操作的理解。
Servlet方法是将数据导出到Excel的一种服务器端技术,常用于Web应用程序。它允许用户请求一个URL,然后服务器生成Excel文件并将其作为HTTP响应的一部分返回。在实现中,Servlet会创建一个Workbook对象,添加Sheet,...
导出数据到Excel的过程则相反: 1. 在Servlet中,根据用户请求,查询数据库中的数据,可能需要进行一些筛选或聚合操作。 2. 创建Excel工作簿和工作表对象,使用Apache POI将数据写入到工作表中。 3. 设置单元格格式...
在Servlet中,你可以使用POI库来创建一个新的Excel工作簿,并将查询到的数据填充到工作表中。例如,可以创建`HSSFWorkbook`对象,然后使用`HSSFSheet`来添加表格,`HSSFRow`和`HSSFCell`用于添加行和单元格数据。 5...
要将这个功能转化为Web服务,我们需要将其封装到一个Servlet或者Controller中。当用户请求时,生成Excel文件,然后设置响应头为“Content-Type: application/vnd.ms-excel”和“Content-Disposition: attachment; ...
在Java编程环境中,将JSP表格中的数据导出到Excel文件是一种常见的需求,尤其是在数据分析、报表生成和数据交换等场景中。本篇文章将详细介绍如何利用Java实现这一功能,主要涉及的技术包括Java Servlet、JSP以及...
### 如何在JSP导出到Excel文件:深入解析与实践 #### 一、通过设置Content-Type导出至Excel 在JSP环境下实现文件导出至Excel的第一种方法较为简单,主要通过修改JSP页面的`Content-Type`属性来完成。`Content-Type...
最后,Action返回一个Result,指示Struts2将Excel内容发送到响应流,从而完成导出。 总的来说,这个项目是一个很好的学习资源,展示了如何在Java Web环境中结合SSH框架和Apache POI处理Excel文件,对于理解和实践...
该页面包含一个表单,用于选择 Excel 文件,并提交到 Servlet 中处理。 6. db.java 的编写 db.java 是一个 Java 类,用于连接数据库和执行 SQL 语句。在本例中,我们使用了 JDBC 驱动程序来连接 SQL Server 2005 ...
这个项目的重点在于整合Struts1.2(一个经典的MVC框架)与ExtJS(一个富客户端JavaScript库)来提供用户友好的界面,并利用功能来导出数据到Excel格式,这在数据分析、报表生成和数据共享方面非常常见。 Struts1.2...
这个“servlet+jsp+oracle简单的增删改查及导出”示例提供了一个基础的教程,帮助开发者了解如何在Java Web环境中实现数据的CRUD(创建、读取、更新、删除)操作以及数据导出功能。 Servlet是Java服务器端的一个...
本文将详细介绍如何使用Apache POI结合JSF技术框架来实现一个简单的Excel文件导出功能。 #### 技术栈与环境准备 - **Java版本**:建议使用Java 8或以上版本。 - **Apache POI库**:需要引入Apache POI的相关依赖。...
请求的目标是一个Servlet或者Controller,这个后端处理程序将负责生成Excel文件。在请求参数中,可以传递必要的数据或者查询条件,以便后端根据这些信息生成Excel内容。 后端部分,你需要使用Apache POI来创建Excel...
下面是一个简单的示例,展示如何使用JXL库导出数据库数据到Excel: 1. 引入JXL库: 在项目中添加JXL的依赖,如果是Maven项目,可以在pom.xml中添加以下依赖: ```xml <groupId>...
以下是一个简单的使用示例: ```java import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk....
【基于jsp+servlet实现的通讯录】是一个典型的Java Web项目,它综合运用了JSP(JavaServer Pages)和Servlet技术,构建了一个具有多种功能的通讯录管理系统。该项目不仅提供了基本的联系人管理功能,如添加、删除、...
在Java Web开发中,Servlet导出文件通常涉及到以下几个关键知识点: 1. **Servlet生命周期**: Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。当首次请求Servlet时,容器(如Tomcat)会加载并初始化...
下面通过一个简单的示例来展示如何使用Java Excel API读取Excel文件中的数据: ##### 1. 创建Workbook对象 首先,需要创建一个`Workbook`对象。这个对象代表了一个Excel文件,可以通过它来访问文件中的各个工作表...
本篇文章将深入探讨如何利用Struts2与POI结合,实现从数据库中获取数据并导出到Excel的功能。 首先,让我们了解Struts2的基本概念。Struts2作为一款强大的MVC框架,它的核心是Action,Action是业务逻辑的执行单元。...