`
Java_大猫
  • 浏览: 173486 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

jxl读excel模板

    博客分类:
  • J2SE
阅读更多
	os = response.getOutputStream();
			response.reset();// 清空输出流
			response.setContentType("request/vnd.ms-excel");
			response.addHeader("Content-Disposition", new String(
					"attachment; filename=invoiceExcel.xls".getBytes("GBK"),
					"ISO-8859-1"));


public class InvoiceExcel {
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public static void export(String excelPath, List<Test2> invoiceList,OutputStream os){
		//选择模板文件:
		try {
			InputStream is = new FileInputStream(excelPath); 
			Workbook wb = Workbook.getWorkbook(is);
			//通过模板得到一个可写的Workbook:
			 WritableCell wc = null;
		
			WritableWorkbook wwb = Workbook.createWorkbook(os, wb);
			//选择模板中名称为StateResult的Sheet:
			
			WritableSheet ws = wwb.getSheet("commercial invoice");
		
			WritableCellFormat wcf = ExcelFormatter.getWritableCellFormatCellFormat();
			WritableCellFormat noWCF	= new WritableCellFormat();
			noWCF.setBorder(Border.ALL, BorderLineStyle.NONE);
			//选择单元格,写入动态值,根据单元格的不同类型转换成相应类型的单元格:
			Label lable;
			wc = ws.getWritableCell(7, 9);
			wc = ExcelFormatter.cloneCellWithValue(7, 9, "789456",noWCF);
			ws.addCell(wc);
			
			wc = ws.getWritableCell(7, 11);
			wc = ExcelFormatter.cloneCellWithValue(7, 11, "1100019/MAG11041",noWCF);
			ws.addCell(wc);

			wc = ws.getWritableCell(7, 14);
			wc = ExcelFormatter.cloneCellWithValue(7, 14, "BY SEA",noWCF);
			ws.addCell(wc);
			
			wc = ws.getWritableCell(0, 16);
			wc = ExcelFormatter.cloneCellWithValue(0, 16, "# 2011 - shanghai dd 03/01/2011",noWCF);
			ws.addCell(wc);
			
			wc = ws.getWritableCell(5, 16);
			wc = ExcelFormatter.cloneCellWithValue(5, 16, "1,22",noWCF);
			ws.addCell(wc);
			
			wc = ws.getWritableCell(6, 16);
			wc = ExcelFormatter.cloneCellWithValue(6, 16, "Moscow",noWCF);
			ws.addCell(wc);
			
			wc = ws.getWritableCell(7, 16);
			wc = ExcelFormatter.cloneCellWithValue(7, 16, "worE",noWCF);
			ws.addCell(wc);
			
			wc = ws.getWritableCell(0, 10);
			wc = ExcelFormatter.cloneCellWithValue(0, 10, "OOO CUMMINS Moscow",noWCF);
			ws.addCell(wc);
			
			wc = ws.getWritableCell(0, 11);
			wc = ExcelFormatter.cloneCellWithValue(0, 11, "Russia,  Khimki Area, Klyazma, 1G,  Moscow region, Russia, 141402",noWCF);
			ws.addCell(wc);
			
			
			
			//表格主体循环打入数据
			
			 for(int i=0;i<invoiceList.size();i++){  
				 wc = ws.getWritableCell(0, 18+i);
				 wc = ExcelFormatter.cloneCellWithValue(0, 18+i, invoiceList.get(i).getBoxno(),wcf);
				 ws.addCell(wc);
				 wc = ws.getWritableCell(1, 18+i);
				 wc = ExcelFormatter.cloneCellWithValue(1, 18+i, invoiceList.get(i).getOrderno(),wcf);
				 ws.addCell(wc);
				 wc = ws.getWritableCell(2, 18+i);
				 wc = ExcelFormatter.cloneCellWithValue(2, 18+i, invoiceList.get(i).getCo(),wcf);
				 ws.addCell(wc);
				 wc = ws.getWritableCell(3, 18+i);
				 wc = ExcelFormatter.cloneCellWithValue(3, 18+i, invoiceList.get(i).getPartno(),wcf);
				 ws.addCell(wc);
				 wc = ws.getWritableCell(4, 18+i);
				 wc = ExcelFormatter.cloneCellWithValue(4, 18+i, invoiceList.get(i).getSsrelationship(),wcf);
				 ws.addCell(wc);
				 wc = ws.getWritableCell(5, 18+i);
				 wc = ExcelFormatter.cloneCellWithValue(5, 18+i, invoiceList.get(i).getDsction(),wcf);
				 ws.addCell(wc);
				 wc = ws.getWritableCell(6, 18+i);
				 wc = ExcelFormatter.cloneCellWithValue(6, 18+i, invoiceList.get(i).getQty(),wcf);
				 ws.addCell(wc);
				 wc = ws.getWritableCell(7, 18+i);
				 wc = ExcelFormatter.cloneCellWithValue(7, 18+i, invoiceList.get(i).getUnitprice(),wcf);
				 ws.addCell(wc);
				 wc = ws.getWritableCell(8, 18+i);
				 wc = ExcelFormatter.cloneCellWithValue(8, 18+i, invoiceList.get(i).getAmout(),wcf);
				 ws.addCell(wc);
				 

			 }
			 wwb.write();     
			 // 关闭文件     
     wwb.close();
     System.out.println("导出成功");
		} catch (Exception e) {
			System.out.println("导出失败");
			e.printStackTrace();
		}   	
		
	}

}

	/**
	 * 验证输入的数据格式转换
	 * @param col
	 * @param row
	 * @param value
	 * @param wcFormat
	 * @return
	 */
	public static WritableCell cloneCellWithValue(int col, int row, Object value,WritableCellFormat wcFormat) {
		WritableCell wc = null;
		// 判断数据是否为STRING类型,是用LABLE形式插入,否则用NUMBER形式插入
		if (value == null) {
			wc = new jxl.write.Blank(col, row,wcFormat);
		} else if (value instanceof String) {
			jxl.write.Label label = new jxl.write.Label(col, row,
					value.toString(),wcFormat);
			wc = label;
		} else {
			wc = new jxl.write.Number(col, row,
					new Double(value.toString()).doubleValue(),wcFormat);
		}
		return wc;
	}


	public static WritableCellFormat getWritableCellFormatCellFormat(){
		
		WritableCellFormat wcf = new WritableCellFormat();     
	     
		try {
			  // 设置居中   
			wcf.setAlignment(Alignment.CENTRE);
			wcf.setBorder(Border.ALL, BorderLineStyle.THIN);
		} catch (WriteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}     
	       
		
		return wcf;
	}
}



PS:项目中用到的一个关于jxl 读取excel模板的代码 公大家学习
分享到:
评论
1 楼 310628570 2011-08-22  
挺有用的啊~ 谢谢了~

相关推荐

    jxl 读取Excel模板并写入数据通用工具类

    本文将详细讨论如何使用JXL库创建一个通用的工具类来读取Excel模板并填充数据。 首先,我们需要了解JXL库的基本用法。JXL库提供了多种API,可以用来操作Excel文件的各个部分,包括工作簿(Workbook)、工作表...

    jxl操作excel模板jar包

    jxl操作excel模板jar包,用于导出特定excel模板

    使用jxl解析excel(.xls)固定模板(智联简历为例)

    解析Excel模板的过程大致分为四个步骤: 1. **上传**:首先,你需要从用户或服务器上获取Excel文件。这通常涉及到文件上传操作,可以使用Apache Commons FileUpload或者其他文件上传库来实现。确保文件被安全地保存...

    jxl模版生成excel

    描述中提到的"采用类似EL表达式的方式生成模版",意味着在使用jxl时,可以利用类似于Expression Language(EL)的语法来动态地填充Excel模板。EL是JavaServer Pages (JSP)中的一种轻量级、简洁的表达式语言,用于...

    jxl导出excel支持模板和非模板

    利用JXL技术支持模板和非模板的表格导出

    JXL使用模板通过el表达式生成excel文件

    首先,你需要创建一个Excel模板文件,这个模板包含你想要在生成的Excel中展示的数据结构和样式。在模板中,你可以预定义单元格的格式,如字体、颜色、边框等,同时可以使用占位符来表示将要填充的数据。 **步骤2:...

    通过JXL使用模板导出EXCEL

    在Java编程环境中,导出数据到Excel是一种常见的需求,特别是在数据分析、报表生成或者数据交换的场景下。...通过对这个示例的分析和学习,你应该能更好地理解如何在实际项目中运用JXL库进行Excel模板导出。

    Java通过POI和JXL给Excel动态添加水印

    - **读取Excel文件**:使用JXL或POI库加载Excel文件。 - **创建水印图像**:根据`Model`中的数据动态生成水印图像。 - **将水印图像添加到Excel页面上**:使用POI提供的API来实现这一功能。 #### 示例代码框架 ```...

    使用jxl包向excle模板中写入数据

    本文将深入探讨如何利用`jxl`包来实现向Excel模板中写入数据,并保留原有模板的完整性。 首先,让我们了解`jxl`库的基本概念。`jxl`库提供了丰富的API,可以方便地操作Excel文件的各种组件,如工作簿(Workbook)、...

    Struts2+JXL 下载 Excel 文档

    此外,对于更复杂的需求,如动态生成复杂的Excel模板,可能需要结合 Velocity 或 Freemarker 等模板引擎来动态渲染Excel模板。同时,安全问题也不容忽视,例如避免XSS攻击,正确处理用户输入的数据等。 总结来说,...

    java 通过excel模板创建新文件并将数据导入excel,实现按行、列插入数据

    java jxl 通过excel模板创建新文件并将数据导入excel,实现按行、列插入数据

    jxl 导出 excel

    在这个过程中,压缩包中的"excel导出jxl"可能包含了一个示例程序或者模板,帮助开发者理解如何实现上述步骤。通过查看和运行这些代码,你可以更深入地了解如何将数据库数据导出到Excel文件中。 总之,使用JXL库在...

    jxl 生成excel 简易教程

    jxl是对excel强有力的操纵工具,它具有丰富的API可以满足对excel的各种开发需要。

    JXL根据模板文件,生成新文件,填充excel

    1. 读取模板文件:使用JXL提供的API读取模板Excel文件。 2. 解析模板:查找模板中的占位符或特定格式的单元格,这些将被实际数据替换。 3. 数据准备:根据业务需求,收集和组织需要填充的数据。 4. 填充数据:遍历...

    java实现自定义excel模板导出excel并可保存客户端和在线打开

    总结来说,利用Java和jxl库,我们可以轻松地创建自定义Excel模板,满足各种复杂的格式需求,并且能方便地在客户端保存或在线打开。通过深入理解和熟练运用jxl提供的API,开发者可以构建出强大而灵活的Excel生成工具...

    jxl实现excel大数据导出

    jxl实现excel大数据导出,26000条记录,测试导出时间是19s,例子不算复杂,没有excel样式的处理,可以自己扩展哈,有数据库文件,部署即可看到效果!!! 有三个功能:代码构建数据的导出、数据库数据的导出(从配置...

    利用Jxl生成excel文件

    Jxl是一个流行的Java库,专门用于读取和写入Microsoft Excel文件。这篇博客“利用Jxl生成excel文件”提供了关于如何使用Jxl库创建Excel文档的指导。 首先,Jxl库允许开发者在Java程序中直接操作Excel格式的数据,而...

    jxl excel批量导入

    标题中的“jxl excel批量导入”指的是使用Java的jxl库来处理Excel文件,实现数据的批量读取和写入。jxl是一个广泛使用的开源Java库,它允许开发者读取、写入和修改Microsoft Excel文件。这个过程在处理大量数据时...

    使用Java的jxl方式导出到Excel

    jxl库是一个广泛使用的开源库,它允许开发者用Java读取、写入和修改Excel文件。本篇文章将深入探讨如何使用jxl库来实现数据从数据库导出到Excel的过程。 首先,要使用jxl库,你需要将其添加到项目的类路径中。如果...

    java通过Excel模板导出各种Excel

    java通过Excel模板导出各种Excel , 支持所有的动态数据,列表,图片, 好用的请给好评! 解压导入到eclipse就可以运行看到效果,里面有简单的例子 , 有很复杂的模板,通过模板导出数据。

Global site tag (gtag.js) - Google Analytics