`
shirlly
  • 浏览: 1652325 次
  • 性别: Icon_minigender_2
  • 来自: 福州
社区版块
存档分类
最新评论

导出excel数据

阅读更多
struts.xml配置
引用

<result name="exportData" type="stream">
<!-- 指定下载文件的文件类型 -->
<param name="contentType">xls</param>
<!-- 指定下载文件的文件位置 -->
<param name="inputName">targetFile</param>
<param name="contentDisposition">attachment;filename="CarInsModification.xls"</param>
<!-- 指定下载文件的缓冲大小 -->
<param name="bufferSize">2048</param>
</result>

JSP页面代码
 <input type="button" class="button" value="导出EXCEL" onClick="onExport()" onMouseOver="switchClass(this)" onMouseOut="switchClass(this)">
//导出全部记录
	        function onExport(){  
	        	var form=document.getElementById("searchForm"); 
                form.action="carinsapply/CarInsModificationAction!exportModification.action";
                //alert(getForm().action);
                form.submit(); 
	        }

Action层代码
public String exportModification() throws FacadeException{
		return Constants.Dispatcher.EXPORT_DATA; 
	}
	/* 
	下载用的Action应该返回一个InputStream实例, 
	该方法对应在result里的inputName属性值为targetFile 
	*/ 
	public InputStream getTargetFile() throws Exception 
	{ 
		filePath = "/exportdata";
		 filePath = "/exportdata";
			try{
				String fileName = carInsModificationFacade.exportModification(filePath); 
				if (!StringUtils.isBlank(fileName)){
					filePath = filePath + "/" + fileName;
					filePath = filePath.substring(1);//因为jsp页面中要加入<%= basePath%>所以要去掉前面的那个“/”
				}else{
					filePath = null;
				}
			}catch(Exception fe){
				fe.printStackTrace();
				throw new FacadeException("导出批单数据出错!"+fe.getMessage());
			}
	    return ServletActionContext.getServletContext().getResourceAsStream(filePath); 
	} 

Facade层代码
public String exportModification(String filePath) throws FacadeException{
	    	String fileName = "carInsModification.xls";
	    	try{
		    	List<CarInsModificationInfo> modificationList = carInsModificationDAO.findAllModification();
		    	if (modificationList.size() > 0){  
		    		//开始创建excel文件   
		    		filePath = ServletActionContext.getServletContext().getRealPath(filePath); 
		    		filePath = filePath + "\\" + fileName;
		    		log.info("filepath="+filePath);
		    		WritableWorkbook book = Workbook.createWorkbook(new File(filePath));  //注意new File只能读取本地的路径  
		            WritableSheet sheet = book.createSheet("Sheet_1", 0);
		            //先生成字段名 
		            //注意第一个是行,第二个是列 
		            sheet.addCell(new Label(0,0,"投保单号"));   
		            sheet.addCell(new Label(1,0,"批单号"));   
		            sheet.addCell(new Label(2,0,"批单状态")); 
		            sheet.addCell(new Label(3,0,"批改类型")); 
		            sheet.addCell(new Label(4,0,"保费变化"));  
		            sheet.addCell(new Label(5,0,"批改时间"));  
		            //开始读取数据
		            for (int i=0;i<modificationList.size();i++){
		            	String policyCode = modificationList.get(i).getPolicyCode();
		            	if (!StringUtils.isBlank(policyCode)){ 
		            		sheet.addCell(new Label(0,i+1,policyCode));
		            	}
		            	String modiCode = modificationList.get(i).getModificationCode();
		            	if (!StringUtils.isBlank(modiCode)){ 
		            		sheet.addCell(new Label(1,i+1,modiCode));
		            	} 
		            	String modiStateCode = modificationList.get(i).getMstateCode(); 
		            	if (!StringUtils.isBlank(modiStateCode)){
		            		String modiState = carInsModificationDAO.findNoteByCode("CpolicyState", modiStateCode);
		            		if (modiState == null){
		            			sheet.addCell(new Label(2,i+1,modiStateCode));
		            		}else{
			            		StringBuffer  modiStateBuf = new StringBuffer();
			            		modiStateBuf.append("(");
			            		modiStateBuf.append(modiStateCode);
			            		modiStateBuf.append(")");
			            		modiStateBuf.append(modiState);
			            		sheet.addCell(new Label(2,i+1,modiStateBuf.toString()));
		            		}
		            	}
		            	String modiTypeCode = modificationList.get(i).getCmodiType().getCode();
		            	if (!StringUtils.isBlank(modiTypeCode)){
		            		String modiType = carInsModificationDAO.findNoteByCode("CmodiType", modiTypeCode);
		            		if (modiType == null){
		            			sheet.addCell(new Label(3,i+1,modiTypeCode));
		            		}else{
			            		StringBuffer modiTypeBuf = new StringBuffer();
			            		modiTypeBuf.append("(");
			            		modiTypeBuf.append(modiTypeCode);
			            		modiTypeBuf.append(")");
			            		modiTypeBuf.append(modiType);
			            		sheet.addCell(new Label(3,i+1,modiTypeBuf.toString()));
		            		}
		            	} 
		            	Double insChange = modificationList.get(i).getInsChange(); 
		            	if (insChange != null){
		            		sheet.addCell(new jxl.write.Number(4,i+1,insChange));
		            	}
		            	String modifyTime = DateFormatUtil.transferDateToString10(modificationList.get(i).getModifyTime());
		            	if (!StringUtils.isBlank(modifyTime)){
		            		sheet.addCell(new Label(5,i+1,modifyTime));
		            	}
		            }
		            book.write();      
		            book.close();
		    	}else{
		    		fileName = "";
		    		throw new FacadeException("该批单信息不存在!");
		    	}
	    	}catch (Exception e){
				throw new FacadeException("生成excel数据失败"+e);
			}  
	    	return fileName;
	    }
分享到:
评论

相关推荐

    SQL 导入导出Excel数据的语句

    SQL 导入导出 Excel 数据的语句 本文将详细介绍如何使用 SQL 语句将数据从 Excel 文件中导入到数据库中,以及如何将数据从数据库中导出到 Excel 文件中。 导入数据 要从 Excel 文件中导入数据到 SQL 数据库中,...

    java Excel导出 Excel数据处理

    总结起来,Java中处理和导出Excel数据涉及使用像Apache POI这样的库,创建工作簿,添加工作表,填充和格式化数据,然后将所有内容写入文件。了解并熟练掌握这些步骤是Java开发人员处理Excel数据的基础。在实际应用中...

    演示通过easyExcel来导出excel数据

    总结起来,SpringBoot结合EasyExcel可以轻松地实现在Java应用中导出Excel数据。EasyExcel的易用性和高性能使其成为处理大量数据导出的理想选择。只需简单几步,开发者就能构建出满足业务需求的Excel导出功能。

    使用模板导出excel数据.zip

    "使用模板导出Excel数据"这个主题聚焦于如何通过编程方式自动化这个过程,尤其是利用模板来确保数据的一致性和格式规范。这里我们将深入探讨相关的知识点: 1. **模板设计**:首先,模板是预先设定好格式、样式和...

    JXL导出Excel数据表

    本篇将详细介绍如何使用JXL库来导出Excel数据表,并结合描述中的信息,探讨其核心特性和实现方式。 首先,我们来理解"JXL导出Excel数据表"这一主题。JXL(Java Excel API)是一个开源项目,它允许Java程序创建、...

    ASP_NET导出Excel数据方法总结

    ### ASP.NET导出Excel数据方法总结 在B/S架构的应用程序开发中,处理报表打印是一项常见但又颇具挑战的任务。特别是在.NET环境下,开发者们经常寻求高效且兼容性强的方法来实现数据导出至Excel的功能。本篇文章将...

    java Excel工具类,导入导出Excel数据

    java Excel工具类,导入导出Excel数据,导入数据对合并表格有判断获取数据,导出数据到Excel,Excel文件不存在会创建。 博客:https://blog.csdn.net/qq_37902949/article/details/81230640

    PHP实现导出excel数据的类库

    本文实例讲述了PHP实现导出excel数据的类库用法,结合实例形式分析了php操作Excel数据的读取与导出操作相关实现技巧,需要的朋友可以参考下,类写的很简单,但很实用。只能简单的导出字符串和数字二种格式。

    PHP实现导出excel数据的类库.zip

    本文实例讲述了PHP实现导出excel数据的类库用法,结合实例形式分析了php操作Excel数据的读取与导出操作相关实现技巧,需要的朋友可以参考下,类写的很简单,但很实用。只能简单的导出字符串和数字二种格式。

    ASP导出Excel数据的四种方法

    本文将深入探讨“ASP导出Excel数据的四种方法”,这是一篇聚焦于如何利用ASP技术将数据库中的数据导出为Microsoft Excel格式的文章。通过详细解析不同方法的实现原理与步骤,帮助开发者理解和掌握ASP与Excel数据交互...

    C#winform实现Excel导入数据库,winform导出excel数据,C#源码.zip

    本资源包"**C# winform实现Excel导入数据库,winform导出excel数据,C#源码.zip**"显然是关于如何在C# WinForms应用中处理Excel文件与数据库交互的示例代码。下面将详细介绍这个主题中的关键知识点。 1. **Excel文件...

    easyui+数据导出为Excel

    SheetJS提供了强大的API,允许我们在前端创建、修改和导出Excel文件。 以下是使用EasyUI和SheetJS实现数据导出的基本步骤: 1. 引入必要的资源:确保在HTML页面中引入EasyUI的CSS和JS文件,以及SheetJS的xlsx.full...

    PHP导出数据到excel

    当我们需要从数据库中导出大量数据并以用户友好的格式提供时,Excel是一种理想的选择。本文将深入探讨如何使用PHP将数据从MySQL数据库导出到Excel文件。 首先,要实现这个功能,你需要了解PHP的基本语法以及如何...

    Unity导出Excel

    在C#脚本中,我们可以通过创建Excel工作簿、工作表,然后向工作表添加行和列来构建Excel数据。以下是一个简单的代码示例: ```csharp using NatCruise.Excel; public class ExcelExporter : MonoBehaviour { void...

    QT 高效 导入导出excel , tableWidget显示

    在QT编程中,高效地导入和导出Excel数据并将其显示在`tableWidget`中是一项常见的需求。这里我们将深入探讨如何实现这一功能,以及优化性能的方法。QT是一个跨平台的应用程序开发框架,提供了丰富的GUI组件,`...

    excel表导入数据库 数据库导出excel(idea平台)

    对于Excel数据的导入,流程通常是这样的: 1. 使用Apache POI读取Excel文件,遍历每一行每一列,将数据存储到Java对象中。 2. 创建JDBC连接,与数据库建立通信。这通常涉及到设置数据库URL、用户名、密码等信息。 3....

    VB6 DataGrid中的数据导出到Excel

    VB6 DataGrid中的数据导出到Excel 本篇文章将详细介绍如何使用VB6将DataGridView中的数据导出到Excel文件中。下面将对标题、描述、标签和部分内容进行解释,并生成相关的知识点。 标题:VB6 DataGrid中的数据导出...

    jQuery把页面上的表格导出Excel表格

    通过jQuery技术,把页面上的表格导出Excel,导出时解决纯数据导出后显示科学计数法和日期型导出后为#号显示问题

    易语言超级列表框快速导出EXCEL源码

    本主题聚焦于一个特定的功能实现:如何将易语言中的超级列表框数据快速导出到Excel文件。这个过程涉及到易语言编程、数据处理以及与Microsoft Excel接口的使用。 首先,我们要理解“超级列表框”是易语言中提供的一...

Global site tag (gtag.js) - Google Analytics