Excel的导出与下载

<span style="font-size:18px;">public class ExportExcelUtil {
	
	public static void createExcel(HttpServletResponse response, List pageDataList, String fileName,String date<span style="white-space:pre">				</span>Type,String orgType){
		try {
			OutputStream out = response.getOutputStream();
			response.reset();
			response.setContentType("application/vnd.ms-excel");
			response.setHeader("Content-disposition", "attachment; fileName=" +</span>
<span style="font-size:18px;"> <span style="white-space:pre">						</span>new String((fileName+".xls").getBytes(), "iso8859-1"));
			WritableWorkbook wbook = Workbook.createWorkbook(out); // 建立excel文件
			WritableSheet wsheet = wbook.createSheet("导出数据", 0); // sheet名称
			WritableCellFormat cellFormatNumber = new WritableCellFormat();
			cellFormatNumber.setAlignment(Alignment.RIGHT);
			
			 WritableFont wf = new WritableFont(WritableFont.ARIAL, 12,
	        	     WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,
	        	     jxl.format.Colour.BLACK); // 定义格式、字体、粗体、斜体、下划线、颜色
	        WritableCellFormat wcf = new WritableCellFormat(wf); // title单元格定义
	        WritableCellFormat wcfc = new WritableCellFormat(); // 一般单元格定义
	        WritableCellFormat wcfe = new WritableCellFormat(); // 一般单元格定义
	        wcf.setAlignment(jxl.format.Alignment.CENTRE); // 设置对齐方式
	        wcfc.setAlignment(jxl.format.Alignment.CENTRE); // 设置对齐方式
	        
	        wcf.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); 
	        wcfc.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); 
	        wcfe.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); 
	        
	        wsheet.setColumnView(0, 20);//设置列宽
	        wsheet.setColumnView(1, 10);
	        wsheet.setColumnView(2, 20);
	        
			int rowIndex = 0;
			int columnIndex = 0;
			if (null != pageDataList) {
					//rowIndex++;
					columnIndex = 0;
					wsheet.setRowView(rowIndex, 500);//设置标题行高
					wsheet.addCell(new Label(columnIndex++, rowIndex, fileName,wcf));
					if("dept".equals(orgType)){
						wsheet.mergeCells(0, rowIndex, "monthly".equals(dateType) ? 5 : 4 , <span style="white-space:pre">						</span>rowIndex);//合并标题所占单元格
					}else{
						wsheet.mergeCells(0, rowIndex, "dept".equals(dateType) ? 4 : 3 , ro<span style="white-space:pre">					</span>wIndex);//合并标题所占单元格
					}
					//wsheet.mergeCells(0, rowIndex, "monthly".equals(dateType) ? 5 : 4 , rowIn<span style="white-space:pre">						</span>dex);//合并标题所占单元格
					rowIndex++;
					columnIndex = 0;
					wsheet.setRowView(rowIndex, 380);//设置项目名行高
					if("dept".equals("orgType")){
						wsheet.addCell(new Label(columnIndex++, rowIndex, "编号",wcf));
						wsheet.addCell(new Label(columnIndex++, rowIndex, "报销人",wcf));
						wsheet.addCell(new Label(columnIndex++, rowIndex, "报销总额",wcf));
						wsheet.addCell(new Label(columnIndex++, rowIndex, "年份",wcf));
						if("monthly".equals(dateType)){
						wsheet.addCell(new Label(columnIndex++, rowIndex, "月份",wcf));
						}
						wsheet.addCell(new Label(columnIndex++, rowIndex, "部门",wcf));
					}else{
						wsheet.addCell(new Label(columnIndex++, rowIndex, "部门编号",wcf));
						wsheet.addCell(new Label(columnIndex++, rowIndex, "部门",wcf));
						wsheet.addCell(new Label(columnIndex++, rowIndex, "报销总额",wcf));
						wsheet.addCell(new Label(columnIndex++, rowIndex, "年份",wcf));
						if("monthly".equals(dateType)){
						    wsheet.addCell(new Label(columnIndex++, rowIndex, "月份",wcf));
						}
					}
					/*wsheet.addCell(new Label(columnIndex++, rowIndex, "编号",wcf));
					wsheet.addCell(new Label(columnIndex++, rowIndex, "报销人",wcf));
					wsheet.addCell(new Label(columnIndex++, rowIndex, "报销总额",wcf));
					wsheet.addCell(new Label(columnIndex++, rowIndex, "年份",wcf));
					if("monthly".equals(dateType)){
						wsheet.addCell(new Label(columnIndex++, rowIndex, "月份",wcf));
					}
					wsheet.addCell(new Label(columnIndex++, rowIndex, "部门",wcf));*/
					// 开始行循环
						for (Object objt : pageDataList) { // 循环列
							Object[] array = (Object[])objt;
							rowIndex++;
							columnIndex = 0;
							
							wsheet.addCell(new Label(columnIndex++, rowIndex, Util.nvl(<span style="white-space:pre">							</span>array[0]),wcfe));
							wsheet.addCell(new Label(columnIndex++, rowIndex, Util.nvl(<span style="white-space:pre">							</span>array[1]),wcfe));
							wsheet.addCell(new Label(columnIndex++, rowIndex, Util.nvl(<span style="white-space:pre">							</span>array[2]),wcfe));
							wsheet.addCell(new Label(columnIndex++, rowIndex, Util.nvl(<span style="white-space:pre">							</span>array[3]),wcfe));
							if("dept".equals(orgType)){
								wsheet.addCell(new Label(columnIndex++, rowIndex, U<span style="white-space:pre">								</span>til.nvl(array[4]),wcfe));
								if("monthly".equals(dateType)){
									wsheet.addCell(new Label(columnIndex++, row<span style="white-space:pre">									</span>Index, Util.nvl(array[5]),wcfe));
								}
							}else{
								if("monthly".equals(dateType)){
									wsheet.addCell(new Label(columnIndex++, row<span style="white-space:pre">									</span>Index, Util.nvl(array[4]),wcfe));
								}
							}
							
						}
						rowIndex++;
						columnIndex = 0;
			}
			wbook.write();
			if (wbook != null) {
				wbook.close();
			}
			out.close();
		} catch (Exception e) {
			e.printStackTrace();
			
		}
		
	}
	
}</span>



<!-- struts.xml 中结果参数基本配置  -->

<span style="white-space:pre">			</span><span style="font-size:18px;"><result name="detailExcel" type="stream">
				<param name="inputName">inputStream</param>
				<param name="contentType">application/ms-excel</param>
				<param name="contentDisposition">attachment;filename="报表信息.xls"</param>
				<param name="bufferSize">1024</param>
		  </result></span>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值