`
duanfei
  • 浏览: 733932 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Excel导出Fuction

    博客分类:
  • J2EE
阅读更多
方法一、1.在JSP上设定打印按钮
<!—-align:表示在页面上所在的位置
<input>标签可定义输入域的开始,在其中用户可输入数据。
http://www.w3school.com.cn/tags/tag_input.asp
onclick:当button单击时触发的Function.
-->
<td align="right"><input type="button" value="Excel导出"
 onclick="fun_excelReport()" /></td>

在<script language=”javascript”></script>中
添加如下Function.
Function fun_excelReport()
{
<!—-pageForm:<Form action=……name="pagedForm" > -->
document.pagedForm.action="<%= request.getContextPath()%>/excelReport.do";
document.pagedForm.submit();	
<!—- 整个页面进行执行 -->
document.pagedForm.action="<%=request.getContextPath()%>/distBudgetDistributeConfigureAction.do"
}
2.在struts

<!—-path:指定.do的对象
Forward:定义返回的变量。来指向页面。
-->
<action path=”/excelReport” scope=”request”>
<forward name=”displayPage” path=”/jsp/distbudgetdistribute/show.jsp”/>
</action>

3.在spring中
<bean name="/excelReport" parent="actionTemplate">
<property name="target">
<bean class="com.suning.biz.distbudgetdistribute.web.action.ExcelReportAction">
<property name="distBudgetDistributeConfigureService" ref="distBudgetDistributeConfigureService" />
</bean>
</property>
</bean>

4.Action
/**Response.setContentType的意思是网址返回的内容类型
*charset=gb2312这个是用中文的编码来解释页面;如果你的页面里有中文就要注意了.一定要注意编码的格式.要不然会有乱码的.*/
response.setContentType("application/vnd.ms-excel;charset=GB2312");
/*文件下载,指定默认名srxljl
Response.AddHeader("content-type","application/x-msdownload");
Response.AddHeader("Content-Disposition","attachment;filename=要下载的文件名.rar");*/
response.addHeader("Content-Disposition", "inline;filename=\""
+ fileName + "\"");


方法二、页面上的Excel打印,问题在于客户端没有安装office excel时会无法导出;用户体验性很差
<input name="exportBtn" type="button" class="button" value="导出" onclick="exportToExcel();"/>

<table class="tb_result" id="PrintA" border="0" cellspacing="1" cellpadding="1" align="center">
</table>


//指定页面区域内容导入Excel
 function exportToExcel()
 {
 	var oXL;
 	try {
 		oXL = new ActiveXObject("Excel.Application");
 	} catch(e) {
 		try {
 			oXL = new ActiveXObject("ET.Application");
 		} catch(e) {
 			alert( "您的电脑没有安装Microsoft Excel软件! ");
 			return;
 		}
 	}
	//var oXL = new ActiveXObject("Excel.Application");
	var oWB = oXL.Workbooks.Add();
	var oSheet = oWB.ActiveSheet;
	var sel=document.body.createTextRange();
	sel.moveToElementText(PrintA);
	sel.select();
	sel.execCommand("Copy");
	oSheet.Paste();
	oXL.Visible = true;
 }


方法三、后台打印Excel
/**
* 导出Excel
*/
public String export() {
LevelBean bean = null;
String[] ss = null;
List<String[]> list = new ArrayList<String[]>();
//pageList:从数据库中得到的数据
for (int i = 0; i < pageList.size(); i++) {
   bean = (LevelBean) pageList.get(i);
   ss = new String[4];
   ss[0] = bean.getTypeName();
   ss[1] = bean.getTypeDetail();
   ss[2] = "人数";
   ss[3] = bean.getAmount();
   list.add(ss);
}
String workSheet = "层级管理";// 输出的excel文件工作表名
String fileName = "CJGL.xls";
String[] title = { "", "", "", "" };// excel工作表的标题
Integer[] width = { 15, 35, 15, 15 };
export(workSheet, fileName, title, width, list);
return null;
}

/**
* 导出Excel表
* @param workSheet 输出的excel文件工作表名
* @param fileName excel文件名
* @param title excel工作表的标题
* @param width 数据所占大小
* @param list 数据
*/
public void export(String workSheet, String fileName, String[] title, Integer[] width, List<String[]> list) {
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/vnd.ms-excel;chartset=utf-8");
response.addHeader("Content-Disposition", "attachment; filename=" + fileName);
OutputStream os = null;
WritableWorkbook workbook = null;
try {
  os = response.getOutputStream();
  workbook = Workbook.createWorkbook(os);
  //生成名为“第一页”的工作表,参数0表示这是第一页 
  WritableSheet sheet = workbook.createSheet(workSheet, 0); // 添加第一个工作表
  jxl.write.Label label;

  //合并单元格 
  sheet.mergeCells(0, 0, title.length - 1, 1);// 左上角到右下角
  jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.ARIAL, 18, WritableFont.BOLD, false);
  jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf);
  wcfF.setAlignment(jxl.format.Alignment.CENTRE);// 把水平对齐方式指定为居中

  //在Label对象的构造子中指名单元格位置是第一列第一行(0,0)   
  //以及单元格内容为workSheet
  sheet.addCell(new Label(0, 0, workSheet, wcfF));////将定义好的单元格添加到工作表中 
  for (int i = 0; i < title.length; i++) {
     // Label(列号,行号 ,内容 )
    label = new jxl.write.Label(i, 2, title[i]); // put the title
    sheet.addCell(label);
    sheet.setColumnView(i, width[i]);
  }
  for (int i = 0; i < list.size(); i++) {
    String[] ss = list.get(i);
    for (int j = 0; j < ss.length; j++) {
      sheet.addCell(new Label(j, i + 3, ss[j]));
    }
  }
//写入数据并关闭文件 
workbook.write();
workbook.close();
try {
  if (os != null) {
    os.flush();
    os.close();
    os = null;
  }
} catch (Exception e) {
  e.printStackTrace();
}
} catch (Exception e) {
  e.printStackTrace();
}
}


四、方式四 JavaScript+CSS打印技术
  <a href="#" onClick="window.print()">JavaScript脚本打印</a>


五、jxl导出excel表(用repord.zip中的jar包)
package com.jshx.common.excelModule;

import java.io.IOException;
import java.util.Map;

import com.jshx.core.base.action.BaseAction;

public class BaseExcel extends BaseAction{
	public String exportExcel(String filename, Map dataMap, String model) throws IOException{
		ExportExcel exportExcel = new ExportExcel();
		exportExcel.export(filename, dataMap, model, getResponse());
		return null;
	}
	
}


package com.jshx.common.excelModule;

import java.io.IOException;
import java.io.InputStream;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import net.sf.jxls.exception.ParsePropertyException;
import net.sf.jxls.transformer.XLSTransformer;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class ExportExcel {
	
	public void export(String filename, Map dataMap, String model, HttpServletResponse response) throws IOException{
		XLSTransformer transformer = new XLSTransformer();
		HSSFWorkbook workbook = null;
		InputStream in;
		try {
			in = getClass().getResource(model).openStream();
			workbook = transformer.transformXLS(in, dataMap);
			outExcel(workbook, response, filename);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	protected void outExcel(HSSFWorkbook workbook, HttpServletResponse response,
		    String filename) {
		   response.setContentType("application ns.ms-excel");
		   response.setHeader("Expires", "0");
		   response.setHeader("Cache-Control",
		     "must-revalidate, post-check=0, pre-check=0");
		   response.setHeader("Pragma", "public");
		   response.setHeader("Content-disposition", "attachment;filename="+filename+".xls");

		   try {
				workbook.write(response.getOutputStream());
		   } catch (ParsePropertyException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
}

public void report() throws Exception{
		Map<String, Object> paraMap = new HashMap<String, Object>();
		paraMap.put("deptCodes", this.getLoginUserDepartment().getChildDeptIds());
		if(null != jshxSales){
		    //设置查询条件,开发人员可以在此增加过滤条件
		}
		resultList = jshxSalesService.reportJshxSalesByMap(paraMap);
		Map dataMap = new HashMap();
		dataMap.put("statList", resultList);
		exportExcel("jshxSales", dataMap, "jshxSales.xls");
	}


function report_jshxProgram(){
            document.myform.action = "jshxProgram_report.action";
            document.myform.submit();
        }
  • 大小: 4.1 KB
  • jxl.jar (692.5 KB)
  • 下载次数: 36
分享到:
评论

相关推荐

    excel导出 内置导出代码,

    在IT行业中,Excel导出是一项常见的需求,尤其是在数据分析、报表生成和数据交换的场景下。本文将详细讲解如何使用Excel类库实现内置的文本导出代码,并结合PHP框架ThinkPHP5(简称tp5)的加载文件方法进行应用。 ...

    layui数据表格导出Excel插件

    通过以上步骤,你就成功地在layui数据表格中集成了Excel导出功能。这个插件利用了浏览器的File API和Blob对象,将数据转换为二进制流并触发下载,无需服务器端的支持,大大简化了开发流程。然而,需要注意的是,由于...

    html-export-Excel.rar_EXCEL导出_excel_export-excel.js_html excel_j

    在IT领域,尤其是在Web开发中,常常需要将网页上的数据导出为常见的电子表格格式,如Excel。这个压缩包文件“html-export-Excel.rar”提供了一个解决方案,它使用JavaScript库`excel-export-excel.js`来实现HTML表格...

    easyui导出excel工具

    2. Excel导出需求 在实际业务中,用户可能需要将DataGrid中的数据导出为Excel文件,以便于进一步的数据分析或者离线查看。EasyUI提供了这样的功能,通过编写后端服务和前端交互,可以实现快速导出。 3. 实现步骤 ...

    Excel导出,js实现

    ### Excel导出,js实现 在现代Web应用开发过程中,数据导出功能是十分常见的需求之一,特别是将数据导出为Excel格式。这种方式不仅能够方便用户进行数据分析,还能提高用户体验。本文将详细介绍如何使用JavaScript...

    vue导出excel表格Blob,Export2Excel

    在Vue.js应用中,我们经常需要处理数据导出到Excel表格的需求,这在数据分析、报表展示等场景下尤其常见。`Blob`对象和`Export2Excel`方法是实现这一功能的关键技术。`Blob`(Binary Large Object)是用于存储二进制...

    thinkphp excel导出功能

    在ThinkPHP框架下实现Excel导出功能,我们可以借助第三方库,如PHPExcel或者EasyExcel。这里我们将重点讨论如何在ThinkPHP,特别是Onethink(基于ThinkPHP的扩展框架)中实现这个功能。 首先,为了在ThinkPHP项目中...

    Thinkphp 3.2.2 利用phpexcel将数据通过excel导出

    本话题将详细探讨如何利用ThinkPHP 3.2.2框架结合PHPExcel库实现数据通过Excel格式导出的功能。 首先,ThinkPHP 3.2.2是一个流行的PHP开发框架,它提供了一套简洁而强大的MVC(模型-视图-控制器)结构,方便开发者...

    ionic 导出excel实现方案

    总结起来,通过`xlsx`库和FileSaver.js,我们可以轻松地在Ionic项目中实现Excel导出功能。只需几行代码,就可以将数据转换成用户可以下载的Excel文件,这对于数据交换和备份是非常有用的。在实际开发过程中,可以...

    jquery.table2excel.js(用于table导出Excel文件)

    《使用jQuery实现Table到Excel的导出功能》 在现代Web开发中,用户常常需要将网页上的表格数据导出为Excel文件,以便于数据分析、存储或共享。jQuery.table2excel.js是一个非常实用的插件,它能帮助开发者轻松地...

    JS数据导出Excel案例代码

    在JavaScript(JS)中,将数据导出为Excel文件是一种常见的需求,特别是在Web应用程序中,用户可能需要将数据显示在Excel表格以便进一步分析或存储。本案例代码主要关注如何使用JavaScript实现这一功能。以下是对该...

    excel导出文件插件.rar

    标题 "excel导出文件插件.rar" 涉及到的是一个前端开发中的实用工具,主要是为了方便开发者在网页应用中实现Excel数据的导出功能。这个插件包含了一组CSS(层叠样式表)和JS(JavaScript)文件,它们是前端页面样式...

    thinkphp5整合excel导入导出

    在开发Web应用时,数据处理是一项重要任务,尤其是在企业级应用中,经常需要与Excel文件进行交互,如导入数据、导出数据等。ThinkPHP5作为国内广泛应用的PHP框架,提供了一种方便的方式来实现这样的功能。本文将详细...

    cognos 自定义导出PDF和Excel.doc

    ### Cognos自定义导出PDF与Excel功能详解 #### 一、背景介绍 Cognos是一款强大的商业智能(Business Intelligence, BI)工具,能够帮助用户进行数据分析、报告制作及可视化展示等工作。在Cognos环境中,用户经常...

    基于thinkphp的excel导出

    首先,要实现Excel导出,我们需要一个能够处理Excel文件的库。PHP有多个这样的库可供选择,例如PHPExcel和PhpSpreadsheet。在ThinkPHP中,我们通常会使用Composer来管理这些依赖,通过运行`composer require ...

    lucksheet excel 在线导出 支持图片 修复各种样式问题

    但是开源坑比较多 ,为了节省大家的时间我在百忙中给大家写了这个excel 在线导出 ,基于excel.js ,使用vue 调用,HTML5 可以通过引入vue 和 excel.js 直接引用,vue 可以直接引用, // export async function ...

    laravel 5.7导出excel

    在 Laravel 5.7 中,实现数据导出到 Excel 文件是一项常见的需求,这通常涉及到数据处理、Excel 格式化以及文件生成。本教程将详细讲解如何在 Laravel 5.7 中利用 "maatwebsite/excel" 这个第三方库来实现这个功能。...

    Ext增删改查和excel导出

    在"Ext增删改查和excel导出"这个主题中,我们将探讨如何在ExtJS应用中实现数据的CRUD操作(创建、读取、更新、删除)以及如何将数据导出为Excel格式。 1. 创建(Create) 在ExtJS中,可以使用GridPanel或FormPanel...

Global site tag (gtag.js) - Google Analytics