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 文件中导入到数据库中,以及如何将数据从数据库中导出到 Excel 文件中。 导入数据 要从 Excel 文件中导入数据到 SQL 数据库中,...
总结起来,Java中处理和导出Excel数据涉及使用像Apache POI这样的库,创建工作簿,添加工作表,填充和格式化数据,然后将所有内容写入文件。了解并熟练掌握这些步骤是Java开发人员处理Excel数据的基础。在实际应用中...
总结起来,SpringBoot结合EasyExcel可以轻松地实现在Java应用中导出Excel数据。EasyExcel的易用性和高性能使其成为处理大量数据导出的理想选择。只需简单几步,开发者就能构建出满足业务需求的Excel导出功能。
"使用模板导出Excel数据"这个主题聚焦于如何通过编程方式自动化这个过程,尤其是利用模板来确保数据的一致性和格式规范。这里我们将深入探讨相关的知识点: 1. **模板设计**:首先,模板是预先设定好格式、样式和...
本篇将详细介绍如何使用JXL库来导出Excel数据表,并结合描述中的信息,探讨其核心特性和实现方式。 首先,我们来理解"JXL导出Excel数据表"这一主题。JXL(Java Excel API)是一个开源项目,它允许Java程序创建、...
### ASP.NET导出Excel数据方法总结 在B/S架构的应用程序开发中,处理报表打印是一项常见但又颇具挑战的任务。特别是在.NET环境下,开发者们经常寻求高效且兼容性强的方法来实现数据导出至Excel的功能。本篇文章将...
java Excel工具类,导入导出Excel数据,导入数据对合并表格有判断获取数据,导出数据到Excel,Excel文件不存在会创建。 博客:https://blog.csdn.net/qq_37902949/article/details/81230640
本文实例讲述了PHP实现导出excel数据的类库用法,结合实例形式分析了php操作Excel数据的读取与导出操作相关实现技巧,需要的朋友可以参考下,类写的很简单,但很实用。只能简单的导出字符串和数字二种格式。
本文实例讲述了PHP实现导出excel数据的类库用法,结合实例形式分析了php操作Excel数据的读取与导出操作相关实现技巧,需要的朋友可以参考下,类写的很简单,但很实用。只能简单的导出字符串和数字二种格式。
本文将深入探讨“ASP导出Excel数据的四种方法”,这是一篇聚焦于如何利用ASP技术将数据库中的数据导出为Microsoft Excel格式的文章。通过详细解析不同方法的实现原理与步骤,帮助开发者理解和掌握ASP与Excel数据交互...
本资源包"**C# winform实现Excel导入数据库,winform导出excel数据,C#源码.zip**"显然是关于如何在C# WinForms应用中处理Excel文件与数据库交互的示例代码。下面将详细介绍这个主题中的关键知识点。 1. **Excel文件...
SheetJS提供了强大的API,允许我们在前端创建、修改和导出Excel文件。 以下是使用EasyUI和SheetJS实现数据导出的基本步骤: 1. 引入必要的资源:确保在HTML页面中引入EasyUI的CSS和JS文件,以及SheetJS的xlsx.full...
当我们需要从数据库中导出大量数据并以用户友好的格式提供时,Excel是一种理想的选择。本文将深入探讨如何使用PHP将数据从MySQL数据库导出到Excel文件。 首先,要实现这个功能,你需要了解PHP的基本语法以及如何...
在C#脚本中,我们可以通过创建Excel工作簿、工作表,然后向工作表添加行和列来构建Excel数据。以下是一个简单的代码示例: ```csharp using NatCruise.Excel; public class ExcelExporter : MonoBehaviour { void...
在QT编程中,高效地导入和导出Excel数据并将其显示在`tableWidget`中是一项常见的需求。这里我们将深入探讨如何实现这一功能,以及优化性能的方法。QT是一个跨平台的应用程序开发框架,提供了丰富的GUI组件,`...
对于Excel数据的导入,流程通常是这样的: 1. 使用Apache POI读取Excel文件,遍历每一行每一列,将数据存储到Java对象中。 2. 创建JDBC连接,与数据库建立通信。这通常涉及到设置数据库URL、用户名、密码等信息。 3....
VB6 DataGrid中的数据导出到Excel 本篇文章将详细介绍如何使用VB6将DataGridView中的数据导出到Excel文件中。下面将对标题、描述、标签和部分内容进行解释,并生成相关的知识点。 标题:VB6 DataGrid中的数据导出...
通过jQuery技术,把页面上的表格导出Excel,导出时解决纯数据导出后显示科学计数法和日期型导出后为#号显示问题
本主题聚焦于一个特定的功能实现:如何将易语言中的超级列表框数据快速导出到Excel文件。这个过程涉及到易语言编程、数据处理以及与Microsoft Excel接口的使用。 首先,我们要理解“超级列表框”是易语言中提供的一...