response.setCharacterEncoding("UTF-8");
PrintWriter out=response.getWriter();
String id=request.getParameter("id");
String pathUrl = "stockoutcome.xls";
response.setContentType("application/x-msdownload;charset=utf-8");
response.setCharacterEncoding("utf-8");
String path=request.getSession().getServletContext().getRealPath("/");
/**
* 去掉会报错的
* 使用了PrintWriter out = response.getWriter();
* 再次使用了ServletOutputStream out = response.getOutputStream();
* 可以在前面写一个response.reset(); 就没事了
*/
response.reset();
File f=new File(path+pathUrl);
f.createNewFile();
//创建一个exlise
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new FileOutputStream(f));
jxl.write.WritableSheet ws = wwb.createSheet( "好便宜库存管理系统 ",2);
//设置单元格的宽度
ws.setColumnView(0, 15);
ws.setColumnView(1, 18);
ws.setColumnView(2, 15);
ws.setColumnView(3, 15);
ws.setColumnView(4, 15);
ws.setColumnView(5, 15);
ws.setColumnView(6, 15);
try {
IVipService vipService=(IVipService)BeanFactory.findBean("vip","vipService");
StockOutcome stockOutcome=vipService.getAllObjLazy(StockOutcome.class, id);
//设置字体样式
jxl.write.WritableFont wfc1 = new jxl.write.WritableFont(WritableFont.ARIAL,20,WritableFont.BOLD,false, UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK);
jxl.write.WritableCellFormat wcfFC1 = new jxl.write.WritableCellFormat(wfc1);
wcfFC1.setBackground(jxl.format.Colour.GRAY_25);
wcfFC1.setAlignment(Alignment.CENTRE);
jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.TIMES,10,WritableFont.BOLD,false, UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK);
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
//设置背景颜色
wcfFC.setBackground(jxl.format.Colour.GRAY_25);
//水平居中
wcfFC.setAlignment(Alignment.CENTRE);
jxl.write.Label tLabel=new jxl.write.Label(0,1,"产品出库单",wcfFC1);
ws.addCell(tLabel);
//合并单元格
ws.mergeCells(0,1,6,2);
tLabel=new jxl.write.Label(0,4,"产品编号",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(1,4,stockOutcome.getSn());
ws.addCell(tLabel);
tLabel=new jxl.write.Label(2,4,"单据类型",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(3,4,"产品出库单");
ws.addCell(tLabel);
tLabel=new jxl.write.Label(4,4,"仓库",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(5,4,stockOutcome.getDepct().getName());
ws.addCell(tLabel);
tLabel=new jxl.write.Label(0,5,"客户名称",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(1,5,stockOutcome.getClient().getName());
ws.addCell(tLabel);
//格式化日期
DateFormat dtf = new DateFormat("yyyy-MM-dd");
WritableCellFormat wcfDt = new WritableCellFormat(dtf);
wcfDt.setAlignment(Alignment.LEFT );
tLabel=new jxl.write.Label(2,5,"订购日期",wcfFC);
ws.addCell(tLabel);
jxl.write.DateTime dateTime=new jxl.write.DateTime(3,5,stockOutcome.getVdate(),wcfDt);
ws.addCell(dateTime);
List<StockOutcomeItem> list=vipService.loadAllT(SQLANDHQLClass.loadStockOutcomeItem(id));
int i=1;
for (StockOutcomeItem stockOutcomeItem : list) {
tLabel=new jxl.write.Label(0,7,"序号",wcfFC);
ws.addCell(tLabel);
jxl.write.Number num=new jxl.write.Number(0,7+i,i);
ws.addCell(num);
tLabel=new jxl.write.Label(1,7,"产品货号",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(1,7+i,stockOutcomeItem.getProduct().getProductNo());
ws.addCell(tLabel);
tLabel=new jxl.write.Label(2,7,"产品名称",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(2,7+i,stockOutcomeItem.getProduct().getProductName());
ws.addCell(tLabel);
// //设置数字格式
// jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
// jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);
tLabel=new jxl.write.Label(3,7,"销售价格",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(3,7+i,stockOutcomeItem.getPrice().toString());
ws.addCell(tLabel);
tLabel=new jxl.write.Label(4,7,"数量",wcfFC);
ws.addCell(tLabel);
num=new jxl.write.Number(4,7+i,stockOutcomeItem.getNum());
ws.addCell(num);
tLabel=new jxl.write.Label(5,7,"合计",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(5,7+i,stockOutcomeItem.getAmount().toString());
ws.addCell(tLabel);
tLabel=new jxl.write.Label(6,7,"备注",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(6,7+i,stockOutcomeItem.getRemark());
ws.addCell(tLabel);
if(i==list.size()-1){
tLabel=new jxl.write.Label(4,9+i,"单据金额",wcfFC);
ws.addCell(tLabel);
tLabel=new jxl.write.Label(5,9+i,stockOutcome.getAmount().toString());
ws.addCell(tLabel);
}
i++;
}
} catch (Exception e) {
e.printStackTrace();
out.println("系统繁忙,请稍后再试...");
return null;
}finally{
wwb.write();
wwb.close();
}
//将创建好多excel下载下来
SmartUpload sm=new SmartUpload();//利用jspsmart进行下载
sm.initialize(getServlet().getServletConfig() ,request ,response);
try {
sm.setContentDisposition(null);
sm.downloadFile(path+pathUrl);
} catch (Exception e) {
e.printStackTrace();
}
分享到:
相关推荐
jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程 jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程
本教程将详细介绍如何使用`jxl`库在导出Excel时添加水印,以及涉及的核心类`WritableWorkbook`、`WritableSheet`和`WritableCellFormat`。 `jxl`库提供了一套完整的API来操作Excel文件,包括创建新的工作簿、添加...
总结起来,`jxl导出excel工具类`是一个强大的工具,它能够帮助开发者快速实现数据到Excel的导出功能,减少重复代码,提高开发效率。通过合理的封装和设计,可以使得这类工具类在不同的项目中重用,降低维护成本。...
在Java编程环境中,导出数据到Excel表格是一个常见的需求,特别是在数据分析、报表生成或数据交换时。`jxl`库是Java中一个广泛使用的库,它允许开发者方便地读取和写入Microsoft Excel文件。本篇文章将深入探讨如何...
《jxl导出Excel的深度解析与应用》 在信息化高度发展的今天,Excel作为数据处理和分析的重要工具,被广泛应用于各个领域。Java作为一种强大的编程语言,如何与Excel进行交互,成为了许多开发者关注的焦点。jxl库...
Java使用JXL库生成Excel文件是一项常见的任务,特别是在数据处理、报表生成或导出时。JXL是一个开源的Java库,允许我们读取、写入和修改Excel文件。以下将详细讲解如何使用JXL库来生成Excel文件。 首先,我们需要在...
在Java编程环境中,JXL库是一个非常流行...总之,使用JXL库在Java中导出Excel文件是一项常见的任务,尤其在数据分析和报表生成场景下。通过熟悉JXL的API,你可以轻松地定制化Excel文件的格式和内容,满足各种业务需求。
通过这个库,我们可以方便地在程序中动态生成Excel工作表,包括设置单元格格式、添加公式以及处理图像等复杂操作。在描述中提到的"封装了一个简单易用、通用、动态的方法",指的是开发者可以通过自定义方法,根据...
jxl导出Excel基础,非常有用的一个东西,漫漫看
在本示例中,我们将探讨如何使用JXL导出Excel以及JXL的API文档。 1. **JXL的基本用法** - **创建工作簿(Workbook)**: 使用`Workbook.createWorkbook()`方法创建一个新的Excel工作簿对象。 - **创建工作表...
标题中的“jxl导出excel文件简单示例”是指使用jxl库来创建和导出Excel文件的一个基本操作。jxl是一个Java库,它允许开发者读取、写入和修改Excel文件,尤其在处理批量数据时非常方便。在这个示例中,我们将探讨如何...
使用jxl生成excel的通用方法,参数List<?>数据,LinkedHashMap,String>实体类属性名和中文列名的键值对
"jxl导出excel.zip"是一个包含工具类的压缩包,用于帮助开发者便捷地将数据导出为Excel格式,主要利用了JXL库。JXL是Java Excel API的一个简称,它是一个开源的Java库,支持读取、写入以及修改Microsoft Excel文件。...
在"struts2+jxl导出excel"的场景中,我们将讨论如何利用Struts2框架与JXL库配合,实现从web应用中导出数据到Excel的工作。 首先,我们需要理解Struts2的动作(Action)和结果(Result)。动作是处理用户请求的核心...
以下是一个基本的代码示例,展示了如何利用JXL导出Excel的步骤: 1. 创建工作簿对象: ```java WorkbookSettings ws = new WorkbookSettings(); // 如果需要设置编码(例如中文字符),可以这样: ws.set...
在Java编程环境中,处理Excel文件是一项常见的任务,特别是在数据导入导出、报表生成等领域。`jxl`库是一个广泛使用的开源库,它允许开发者用Java读取、写入和修改Excel文件。在这个特定的场景中,我们将探讨如何...
自己封装的方法,调用 XlHelper.getXl(List<?> voList , Object head , OutputStream ops)方法,直接返回需要的excel,而不需要再去写jxl的方法。第一个参数voList 是excel里的内容,第二个参数head是excel表头。第...
本文将深入探讨如何使用JXL进行Excel的导入与导出。 一、JXL库介绍 JXL是一个开源的Java库,它支持读取和写入多种Excel文件格式,包括老版本的.BIFF8格式和较新的.XLSX格式。这个库不仅提供了对单元格、工作表和...