`

利用jxl进行Excel的导出操作

阅读更多

web工程 利用jxl(JExcelApi)进行Excel的导出功能

jxl.jar版本 2.6.6 详见附件


  	public void exportYCItemPaid(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		response.setContentType("application/vnd.ms-excel");
		String fileName =  "赔付标的信息("+1+")";
		fileName = new String(fileName.getBytes("GBK"),"ISO8859-1");
		response.addHeader("Content-Disposition","attachment;filename="+fileName+".xls");   
		OutputStream os = response.getOutputStream();
		WritableWorkbook book = Workbook.createWorkbook(os);
	
		WritableSheet sheet = book.createSheet("test", 0);
		//生成详细数据
		
		WritableFont wf = new WritableFont(WritableFont.TIMES, 12, WritableFont.BOLD, false);
		
		WritableCellFormat textFormat = new WritableCellFormat(NumberFormats.TEXT); //定义一个单元格样式
		textFormat.setAlignment(Alignment.CENTRE);
		textFormat.setBorder(Border.ALL, BorderLineStyle.THIN);
		
		
		WritableCellFormat doubleFormat = new WritableCellFormat(NumberFormats.FLOAT); //定义一个单元格样式
		doubleFormat.setAlignment(Alignment.CENTRE);
		doubleFormat.setBorder(Border.ALL, BorderLineStyle.THIN);
		
		WritableCellFormat wcf = new WritableCellFormat(wf); 
		wcf.setAlignment(jxl.format.Alignment.CENTRE); // 设置对齐方式
		
		WritableCellFeatures txcf0 = new WritableCellFeatures();
		txcf0.setComment("合同号请与承保系统中数据相符");
		
		WritableCellFeatures txcf1 = new WritableCellFeatures();
		txcf1.setComment("农户姓名请与承保系统中数据相符");
	
		WritableCellFeatures txcf2 = new WritableCellFeatures();
		txcf2.setComment("归属烟叶站名称请与承保系统中数据相符");
		
		WritableCellFeatures txcf3 = new WritableCellFeatures();
		txcf3.setComment("烟草生长期(1——团棵期、2——现蕾期、3——采烤期)");
		
		WritableCellFeatures txcf4 = new WritableCellFeatures();
		txcf4.setComment("当期单株有效叶片数(请录入数字 介于0.1到9999999.99)");
		
		WritableCellFeatures txcf5 = new WritableCellFeatures();
		txcf5.setComment("灾害类型(请录入字符)");
		
		WritableCellFeatures txcf6 = new WritableCellFeatures();
		txcf6.setComment("受灾地点(请录入字符)");
		
		WritableCellFeatures txcf7 = new WritableCellFeatures();
		txcf7.setComment("受损面积(请录入字符 介于0.10.1到9999999.99)");
		
		WritableCellFeatures txcf8 = new WritableCellFeatures();
		txcf8.setComment("是否绝收(0——不绝收,1——绝收;)");
		
		WritableCellFeatures txcf9 = new WritableCellFeatures();
		txcf9.setComment("受损程度(请录入数字介于 1到100)");
		
		WritableCellFeatures txcf10 = new WritableCellFeatures();
		txcf10.setComment("赔付金额(请录入数字)");
		
		WritableCellFeatures txcf11 = new WritableCellFeatures();
		txcf11.setComment("开户行账号(请录入字符)");
		
		WritableCellFeatures txcf12 = new WritableCellFeatures();
		txcf12.setComment("账户姓名(请录入字符)");
		
		WritableCellFeatures txcf13 = new WritableCellFeatures();
		txcf13.setComment("开户银行(请录入字符)");
		
		CellView cv = new CellView(); //定义一个列显示样式 
		cv.setFormat(wcf);//把定义的单元格格式初始化进去
		cv.setSize(10*265);//设置列宽度(不设置的话是0,不会显示)
	 
		String orgCode = "1";
		String orgName = "12";
		int columnIndex = 0;
	    sheet.setColumnView(columnIndex, 25); // 设置列的宽度 第一列
	    sheet.setColumnView(++columnIndex, 15); // 设置列的宽度 第二列
	    sheet.setColumnView(++columnIndex, 35); // 设置列的宽度 第三列
	    sheet.setColumnView(++columnIndex, 10); // 设置行的高度 第四列
	    sheet.setColumnView(++columnIndex, 10); // 设置行的高度 第五列
	    sheet.setColumnView(++columnIndex, 20); // 设置行的高度 第六列
	    sheet.setColumnView(++columnIndex, 25); // 设置行的高度 第七列
	    
	    sheet.setColumnView(++columnIndex, 10); // 设置行的高度 第八列
	    sheet.setColumnView(++columnIndex, 10); // 设置行的高度 第九列
	    
	    sheet.setColumnView(++columnIndex, 10); // 设置行的高度 第十列
	    sheet.setColumnView(++columnIndex, 25); // 设置行的高度 十一列
	    
	    sheet.setColumnView(++columnIndex, 30); // 设置行的高度 十二列
	    sheet.setColumnView(++columnIndex, 20); // 设置行的高度 十三列
	    sheet.setColumnView(++columnIndex, 20); // 设置行的高度 十四列
	    String[] titles = {	"合同号","农户姓名","归属烟叶站名称","烟草生长期",
				"当期单株有效叶片数","灾害类型","受灾地点","受损面积",
				"是否绝收","受损程度","赔付金额","开户行账号","账户姓名","开户银行"};
	
		//生成Title
		Label titleLabel = null;
		for (int i = 0; i < titles.length; i++) {
			titleLabel =   new Label(i, 0, titles[i],textFormat);
			switch (i) {
			case 0://合同号
				titleLabel.setCellFeatures(txcf0);
				break;
			case 1://农户姓名
				titleLabel.setCellFeatures(txcf1);
				break;
			case 2://归属烟叶站名称
				titleLabel.setCellFeatures(txcf2);
				break;
			case 3://烟草生长期
				titleLabel.setCellFeatures(txcf3);
				break;
			case 4://当期单株有效叶片数
				titleLabel.setCellFeatures(txcf4);
				break;
			case 5://灾害类型
				titleLabel.setCellFeatures(txcf5);
				break;
			case 6://受灾地点
				titleLabel.setCellFeatures(txcf6);
				break;
			case 7://受损面积
				titleLabel.setCellFeatures(txcf7);
				break;
			case 8://是否绝收
				titleLabel.setCellFeatures(txcf8);
				break;
			case 9://受损程度
				titleLabel.setCellFeatures(txcf9);
				break;
			case 10://赔付金额
				titleLabel.setCellFeatures(txcf10);
				break;
			case 11://开户行账号
				titleLabel.setCellFeatures(txcf11);
				break;
			case 12://账户姓名
				titleLabel.setCellFeatures(txcf12);
				break;
			case 13://开户银行
				titleLabel.setCellFeatures(txcf13);
				break;
			default:
				break;
			}
			sheet.addCell(titleLabel);
		}
	   
		
		
		
		List<String> jsList = new ArrayList<String>(); 
		jsList.add("1"); 
		jsList.add("0");
	
		//生长期下拉列表
		List<String> seasonList = new ArrayList<String>(); 
		seasonList.add("1"); 
		seasonList.add("2");
		seasonList.add("3");
		
		 
	//	for (int i = 0; i < lossInfoList.size(); i++) {
			jxl.write.Number titleNumber = null;
			int cellIndex = 0;
			int i=0;
			//合同号
			titleLabel =   new Label(cellIndex++ , i+1, "1121212",textFormat);
			sheet.addCell(titleLabel);
			
			//农户姓名
			titleLabel =   new Label(cellIndex++ , i+1, "1121212",textFormat);
			sheet.addCell(titleLabel);
			
			//归属烟叶站名称
			titleLabel =   new Label(cellIndex++ , i+1, orgName ,textFormat);//归属烟叶站名称
			sheet.addCell(titleLabel);
			
			//烟草生长期(1——团棵期、2——现蕾期、3——采烤期)
			titleNumber =   new jxl.write.Number(cellIndex++ , i+1,1 , textFormat);
			WritableCellFeatures cf1 = new WritableCellFeatures();
			cf1.setDataValidationList(seasonList);
			titleNumber.setCellFeatures(cf1);
			sheet.addCell(titleNumber);
			
			//当期单株有效叶片数
			titleNumber =   new jxl.write.Number(cellIndex++ , i+1, 1, doubleFormat);
			WritableCellFeatures cf2 = new WritableCellFeatures();
			cf2.setNumberValidation(0.1 ,9999999.99, BaseCellFeatures.BETWEEN);
			titleNumber.setCellFeatures(cf2);
			sheet.addCell(titleNumber);
			
			//灾害类型
			titleLabel =   new Label(cellIndex++ , i+1, "1121212" ,textFormat);
			sheet.addCell(titleLabel);
			
			//受灾地点
			titleLabel =   new Label(cellIndex++ , i+1, "1121212" ,textFormat);
			sheet.addCell(titleLabel);
	
			//受损面积
			titleNumber =   new jxl.write.Number(cellIndex++ , i+1,1, doubleFormat);
			WritableCellFeatures cf3 = new WritableCellFeatures();
			cf3.setNumberValidation(0.1 ,9999999.99, BaseCellFeatures.BETWEEN);
			titleNumber.setCellFeatures(cf3);
			sheet.addCell(titleNumber);
			
			
			//是否绝收 设置下拉列表取值范围 0,1	
			titleNumber =   new jxl.write.Number(cellIndex++ , i+1, Double.parseDouble("12") ,textFormat);
			WritableCellFeatures cf6 = new WritableCellFeatures();
			cf6.setDataValidationList(jsList);
			titleNumber.setCellFeatures(cf6);
			sheet.addCell(titleNumber);
			
			//受损程度 
			titleNumber   =   new jxl.write.Number (cellIndex++ , i+1,12  ,doubleFormat);
			WritableCellFeatures cf4 = new WritableCellFeatures();
			cf4.setNumberValidation(0.01 ,100, BaseCellFeatures.BETWEEN);
			titleNumber.setCellFeatures(cf4);
			sheet.addCell(titleNumber);
			
			//赔付金额
			titleNumber =   new jxl.write.Number(cellIndex++ , i+1, 0, doubleFormat);
			WritableCellFeatures cf5 = new WritableCellFeatures();
			cf5.setNumberValidation(0.01 ,9999999.99, BaseCellFeatures.BETWEEN);
			titleNumber.setCellFeatures(cf5);
			sheet.addCell(titleNumber);
			
			
	//	}
//		//设置下拉列表取值范围
//		List angerlist = new ArrayList(); 
//		angerlist.add("是"); 
//		angerlist.add("否");
//		Label norFormat =  new Label(1, 0, "请选择");
//		WritableCellFeatures ws = new WritableCellFeatures();
//		ws.setDataValidationList(angerlist);
//		norFormat.setCellFeatures(ws);
//		sheet.addCell(norFormat);
//		
//		
//		
//		//设置数字有效性  取值是100, 200区间, 100和200是有效的
//		jxl.write.Number  number = new jxl.write.Number(3,3,100);
//		WritableCellFeatures cf = new WritableCellFeatures();
//		cf.setNumberValidation(100, 200,BaseCellFeatures.BETWEEN);
//		number.setCellFeatures(cf);
//		sheet.addCell(number);
//		
//		//设置数字有效性  大等于100
//		jxl.write.Number  number1 = new jxl.write.Number(3,4,0);
//		WritableCellFeatures cf1 = new WritableCellFeatures();
//		cf1.setNumberValidation(100 , BaseCellFeatures.GREATER_THAN);
//		number1.setCellFeatures(cf1);
//		sheet.addCell(number1);
//		
//		//设置数字有效性  小于100
//		jxl.write.Number  number2 = new jxl.write.Number(3,5,0);
//		WritableCellFeatures cf2 = new WritableCellFeatures();
//		cf2.setNumberValidation(100 , BaseCellFeatures.LESS_THAN);
//		number2.setCellFeatures(cf2);
//		sheet.addCell(number2);
//	
//		//设置数字有效性  不在100,200区间的数字
//		jxl.write.Number  number3 = new jxl.write.Number(3,6,0);
//		WritableCellFeatures cf3 = new WritableCellFeatures();
//		cf3.setNumberValidation(100,200 , BaseCellFeatures.NOT_BETWEEN);
//		number3.setCellFeatures(cf3);
//		sheet.addCell(number3);
//		
//		//设置数字有效性  必须等于 100
//		jxl.write.Number  number4 = new jxl.write.Number(3,7,0);
//		WritableCellFeatures cf4 = new WritableCellFeatures();
//		cf4.setNumberValidation(100 , BaseCellFeatures.EQUAL);
//		number4.setCellFeatures(cf4);
//		sheet.addCell(number4);
//		
//		//设置数字有效性  不等于 100
//		jxl.write.Number  number5 = new jxl.write.Number(3,8,0);
//		WritableCellFeatures cf5 = new WritableCellFeatures();
//		cf5.setNumberValidation(100 , BaseCellFeatures.NOT_EQUAL);
//		number5.setCellFeatures(cf5);
//		sheet.addCell(number5);
//		
//		//设置数字有效性  大于等于100
//		jxl.write.Number  number6 = new jxl.write.Number(3,9,0);
//		WritableCellFeatures cf6 = new WritableCellFeatures();
//		cf6.setNumberValidation(100  , BaseCellFeatures.GREATER_EQUAL);
//		number6.setCellFeatures(cf6);
//		sheet.addCell(number6);
//		
//		//设置数字有效性  小于等于100
//		jxl.write.Number  number7 = new jxl.write.Number(3,10,0);
//		WritableCellFeatures cf7 = new WritableCellFeatures();
//		cf7.setNumberValidation(100, BaseCellFeatures.LESS_EQUAL);
//		number7.setCellFeatures(cf7);
//		sheet.addCell(number7);
	//	
	
		book.write();
		book.close();
		os.close();
		response.flushBuffer();
	}
  • jxl.jar (703.8 KB)
  • 下载次数: 2
分享到:
评论

相关推荐

    利用jxl操作excel文件

    本篇将详细介绍如何利用`jxl`库来操作Excel文件,并结合实例说明如何从Excel文件中提取数据并生成TXT文件。 首先,我们需要理解`jxl`库的基本结构。`jxl`库主要提供了`Workbook`、`Sheet`、`Cell`等类,分别对应...

    JXL导出Excel数据表

    在IT行业中,数据导出是一项常见的任务,尤其是在数据分析、报表生成和数据...在进行数据导出时,注意性能优化,比如批量处理数据,避免频繁的内存读写操作,以提高效率。同时,确保导出的数据安全,避免敏感信息泄露。

    jxl导出excel总结

    在本文中,我们将深入探讨jxl的使用方法,包括它的API和实际操作技巧,以帮助开发者更好地利用这一工具。 首先,让我们来了解jxl的基本API。jxl的核心类主要包括Workbook、Sheet、Row和Cell。Workbook代表整个Excel...

    利用JXL导出Excel的代码示例

    下面我们将详细探讨如何利用JXL库来导出Excel文件。 首先,你需要在项目中引入JXL库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;net.sourceforge.jexcelapi&lt;/groupId&gt; ...

    通过JXL使用模板导出EXCEL

    本文将深入探讨如何利用JXL库通过模板来导出Excel。 首先,JXL库(Java Excel API)是一个开源的Java库,它提供了处理Microsoft Excel文件的能力。它支持读取、写入以及修改Excel 97-2004(.xls)格式的文件。虽然...

    使用jxl导出Excel表的好例子

    本篇文章将深入探讨如何利用`jxl`库来创建和导出Excel表格。 首先,我们需要在项目中引入`jxl`库。如果你的项目是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    利用jxl实现数据库内容导出Excel

    本篇文章将深入探讨如何利用jxl库实现数据库内容的导出。 首先,你需要在项目中引入jxl库。在提供的压缩包中,`jxl.jar`是jxl的核心库文件,你需要将其添加到项目的类路径中。对于Maven项目,可以在pom.xml文件中...

    jxl对excel添加水印(含有setWaterMarkImage方法).zip

    在Java编程环境中,处理Excel文件是一项常见的任务,特别是在数据导入导出、报表生成等领域。`jxl`库是一个广泛使用的开源库,它允许开发者用Java读取、写入和修改Excel文件。在这个特定的场景中,我们将探讨如何...

    java利用jxl生成excel文件

    总结来说,Java利用JXL库生成Excel文件是通过创建工作簿、工作表、单元格,并设置它们的属性和内容来实现的。JXL提供了广泛的API来处理各种复杂的Excel操作,是Java环境下生成Excel文件的一个实用工具。

    java利用jxl导出excel表格

    Java使用JXL库导出Excel表格是一个常见的任务,特别是在数据处理和报告生成的场景中。JXL是一个开源的Java库,允许我们读取、写入和修改Excel文件。以下是对这个知识点的详细解释: 首先,我们需要理解Excel文件的...

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

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

    Java利用JXL读写Excel

    本篇将详细介绍如何使用JXL进行Excel的读写操作,并提供一个在MyEclipse环境中可以直接运行的示例代码。 首先,你需要在项目中引入JXL库。如果你使用Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    jxl导出Excel基础

    总结起来,`jxl`库提供了一个简洁的接口来导出Java应用中的数据到Excel文件,适用于需要快速实现Excel导出功能的场景。通过理解上述步骤和使用`jxl`库的API,开发者可以轻松地创建功能丰富的Excel文档。

    利用jxl实现excel解析

    总结来说,"利用jxl实现excel解析"涉及的关键知识点包括:jxl库的使用、Excel文件的读取与写入、工作簿和工作表的操作、单元格的访问与样式设置,以及数据处理逻辑的实现。掌握这些技能对于进行Java中的Excel操作至...

    利用Jxl生成excel文件

    总的来说,"利用Jxl生成excel文件"这个主题涵盖了Java环境下使用Jxl库进行Excel操作的基本知识,包括创建工作簿、工作表,添加数据,设置样式,以及读写文件的流程。对于需要在Java应用程序中生成Excel报告或导出...

    JXL 下载 Excel 文档

    标题中的“JXL”指的是Java Excel API,这是一个用于读写Microsoft Excel文件的开源库。...通过阅读博客和研究提供的示例代码,你将能够深入了解如何在实际项目中集成和利用JXL库,提高Excel文件处理的效率和灵活性。

    jxl导出excel.zip

    总结来说,"jxl导出excel.zip"提供的工具可以帮助Java开发者高效地处理Excel导出任务,利用JXL库的强大功能,结合自定义的工具类和注解,能够灵活、便捷地将业务数据转换为用户友好的Excel文件。对于需要处理大量...

    struts2+jxl导出excel

    通过这种方式,你可以结合Struts2的控制层和JXL的Excel操作,轻松实现web应用的Excel导出功能。不过,需要注意的是,随着技术的发展,现在有更多现代化的库(如Apache POI)和框架(如Spring Boot)提供了更强大和...

    jxl 实现 excel的导入和 导出

    在这个项目中,我们将深入探讨如何利用`jxl`库实现Excel的导入和导出功能。 首先,要开始使用`jxl`库,你需要将`jxl.jar`文件添加到你的项目类路径中。在提供的文件列表中,`jxl.jar`就是这个库的核心组件。此外,`...

    jxl方式生成excel表格.zip

    本资源提供了一个利用jxl库实现Java程序中生成Excel表格的解决方案。jxl是一个广泛使用的开源Java库,它允许开发者读取、写入和修改Microsoft Excel文件。 首先,我们来详细了解一下jxl库。jxl库支持多种Excel操作...

Global site tag (gtag.js) - Google Analytics