java基础之导出(Excel)
function exportExcel() {
$.messager
.confirm(
'提示信息',
'您确定要导出到Excel?',
function(r) {
if (r) {
var columns = $("#queryTmallTcMsgGrid").datagrid(
"options").columns[0];
var stringTitle = "";
var stringFields = "";
for (var i = 0; i < columns.length; i++) {
//导出剔除'联系手机'
if (columns[i].title == "联系手机") {
continue;
}
stringTitle = stringTitle + columns[i].title
+ ",";
if (columns[i].title == "客户性质") {
stringFields = stringFields
+ "customerNatureName,";
} else if (columns[i].title == "是否回访") {
stringFields = stringFields
+ "isCallbackName,";
} else if (columns[i].title == "是否购买") {
stringFields = stringFields + "isBuyName,";
} else if (columns[i].title == "留言来源") {
stringFields = stringFields
+ "messageSourceName,";
} else if (columns[i].title == "客户类型") {
stringFields = stringFields
+ "userTypeName,";
} else if (columns[i].title == "分配类型") {
stringFields = stringFields
+ "distributionTypeName,";
} else {
stringFields = stringFields
+ columns[i].field + ",";
}
}
var queryParams = $("#queryTmallTcMsgGrid")
.datagrid("options").queryParams;
queryParams.gridTitle = stringTitle;
queryParams.gridField = stringFields;
queryParams.moduleName = "天猫留言.xls";
var formObj = $("<form></form>")
.attr("method", "post")
.attr(
"action",
appPath
+ "/page/tmallTcMessageAct/exportExcel");
formObj
.append(
"<input type='text' name='gridTitle'>")
.append(
"<input type='text' name='gridField'>")
.append(
"<input type='text' name='moduleName'>")
.append(
"<input type='text' name='tmallOrderId'>")
.append(
"<input type='text' name='memberName'>")
.append(
"<input type='text' name='alipayUserName'>")
.append(
"<input type='text' name='alipayPaidFee'>")
.append(
"<input type='text' name='message'>")
.append(
"<input type='text' name='messageSource'>")
.append(
"<input type='text' name='receiveUser'>")
.append(
"<input type='text' name='receiveFullAddress'>")
.append(
"<input type='text' name='receiveTel'>")
.append(
"<input type='text' name='receiveMobile'>")
.append(
"<input type='text' name='orderCreateTime'>")
.append(
"<input type='text' name='goodsNo'>")
.append(
"<input type='text' name='goodsTopic'>")
.append(
"<input type='text' name='goodsCount'>")
.append(
"<input type='text' name='isCallback'>")
.append("<input type='text' name='isBuy'>")
.append(
"<input type='text' name='notBuyReason'>")
.append(
"<input type='text' name='callbackTime'>")
.append(
"<input type='text' name='commitUserid'>")
.append(
"<input type='text' name='callbackUserid'>")
.append(
"<input type='text' name='userType'>")
.append(
"<input type='text' name='serviceName'>")
.append(
"<input type='text' name='assignNum'>")
.append(
"<input type='text' name='distributionType'>")
.append(
"<input type='text' name='customerNature'>")
.append(
"<input type='text' name='bgMessageTime'>")
.append(
"<input type='text' name='endMessageTime'>")
//8459修正
/*.append(
"<input type='text' name='importId'>")*/
.append(
"<input type='text' name='assignId'>")
.append(
"<input type='text' name = 'note'>")
.append(
"<input type='text' name = 'orderId'>")
.css('display', 'none').appendTo("body");
formObj.form("load", queryParams);
formObj.submit();
formObj.remove();
}
});
}
@RequestMapping(value = "/exportExcel")
public String exportExcel(HttpServletRequest request, HttpServletResponse response, TmallTcMessage tmallTcMessage) {
String objList = "";
// Integer userId = (Integer) request.getSession().getAttribute("userId");
// Integer num = systemService.checkName(userId);
Integer strLength = 4;
// if (num != null && num > 0) {
// strLength = 0;
// }
tmallTcMessage.setStrLength(strLength);
try {
objList = exportService.exportExcelFile(request,
response,
tmallTcMessage,
"TmallTcMessage.TmallMessageExportExcel");
} catch (Exception e) {
logger.debug(e.getMessage());
e.printStackTrace();
}
return objList;
}
=============================================基类==========================================================================
public String exportExcelFile(HttpServletRequest request,HttpServletResponse response,
Object obj, String sqlMap) throws Exception {
String fileChName = request.getParameter("moduleName");
String gridTitle = request.getParameter("gridTitle");
String gridField = request.getParameter("gridField");
response.reset();
response.setCharacterEncoding("ISO8859-1");
response.setHeader("Content-Disposition", "attachment; filename="+new String(fileChName.getBytes("GBK"), "ISO8859-1"));//fileChName为下载时用户看到的文件名
response.setHeader("Connection", "close");
response.setHeader("Content-Type", "application/octet-stream");
OutputStream out = response.getOutputStream();
Map map = new HashMap();
List<Object> paymentInfoList = commonDao.queryForList(sqlMap, obj);
if(paymentInfoList.size()>10000){
WritableWorkbook wbook = Workbook.createWorkbook(out);//直接写入内存,不要存放到硬盘中
jxl.write.WritableSheet wsheet = wbook.createSheet("Sheet1", 0);//定义sheet的名称
jxl.write.WritableFont wfont = null; // 字体
jxl.write.WritableCellFormat wcfFC = null; // 字体格式
jxl.write.Label wlabelString = null; // Excel表格的Cell,文本格式
for(int i=0;i<1;i++){
wsheet.setColumnView(i, 40);//设置列宽
}
// 设置excel标题字体
wfont = new jxl.write.WritableFont(WritableFont.ARIAL, 14, WritableFont.BOLD,
false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
wcfFC = new jxl.write.WritableCellFormat(wfont);
wcfFC.setAlignment(jxl.format.Alignment.LEFT); // 设置对齐方式
// 添加excel标题
jxl.write.Label wlabel1 = new jxl.write.Label(5, 0,"导出提示",wcfFC);
wsheet.addCell(wlabel1);
// 设置正文字体
wfont = new jxl.write.WritableFont(WritableFont.TIMES, 12, WritableFont.NO_BOLD,
false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
wcfFC = new jxl.write.WritableCellFormat(wfont);
wcfFC.setAlignment(jxl.format.Alignment.LEFT); // 设置对齐方式
//往Excel输出数据
wlabelString = new jxl.write.Label(5, 1, "导出数据超过一万条,系统不支持,请分批导出",wcfFC);
wsheet.addCell(wlabelString);
wbook.write(); // 写入文件
wbook.close();
out.flush();
out.close();
return "ok";
}
String[] title = gridTitle.split(",");
String[] propery = gridField.split(",");
Integer titleNum = title.length;//Excel中字段的个数
String FileTitle = "";//Excel中正文标题
//--建立EXCEL索引、字段名、字段值的关系,存放到map中
for(int i=0;i<title.length;i++){
String PojoPropery = propery[i];//grid中title和field是一一对应的,所以可以这么写
String toUpp = PojoPropery.replaceFirst(PojoPropery.substring(0,1), PojoPropery.substring(0,1).toUpperCase());//把首字母转换为大写
String methodName = "get"+toUpp;//拼成pojo类中getXXX的方法名称
map.put(PojoPropery, new ExportExcelColumn(i,title[i],methodName));
}
this.export(out, FileTitle, titleNum,paymentInfoList, map);
return "ok";
}
==========================================================js=======================================================
//导出
function exportExcel(){
$.messager.confirm('提示信息','您确定要导出到Excel?',function(r){
if(r){
var columns = $("#linksCommonGrid").datagrid("options").columns[0];
//--------把标题grid标题和grid的field,拼接成字符串-----------
var stringTitle = "";
var stringFields = "";
for(var i = 1; i < columns.length; i++){
stringTitle = stringTitle + columns[i].title + ",";
stringFields = stringFields + columns[i].field + ",";
}
if(stringTitle.lastIndexOf(",") == (stringTitle.length-1)){
stringTitle = stringTitle.substring(0, stringTitle.lastIndexOf(","));
}
if(stringFields.lastIndexOf(",") == (stringFields.length-1)){
stringFields = stringFields.substring(0, stringFields.lastIndexOf(","));
}
var queryParams = $("#linksCommonGrid").datagrid("options").queryParams;
queryParams.gridTitle = stringTitle;
queryParams.gridField = stringFields;
queryParams.moduleName = "友情链接.xls";
var formObj = $("<form></form>").attr("method","post").attr("action",appPath+"/page/pageIndexMrgAct/exportLinksList");
formObj.append("<input type='text' name='gridTitle'>")
.append("<input type='text' name='gridField'>")
.append("<input type='text' name='moduleName'>")
.append("<input type='text' name='linkType'>")
.append("<input type='text' name='url'>")
.append("<input type='text' name='keywords1'>")
.append("<input type='text' name='linkUrl1'>")
.append("<input type='text' name='qq'>")
.append("<input type='text' name='keywords2'>")
.append("<input type='text' name='linkUrl2'>")
.css('display','none')
.appendTo("body");
formObj.form("load",queryParams);
formObj.submit();
formObj.remove();
}
});
}
=====================================================java=======================================================
/**
* 导出excel
*
* @param request
* @param response
* @param website
*/
@RequestMapping(value = "/exportLinksList")
@ResponseBody
public String exportLinksList(HttpServletRequest request,
HttpServletResponse response, PageIndexLinks pageIndexLinks) {
try {
List<Object> LinksList=null;
ServiceMessage<List<Object>> res = pageIndexLinksService.getLinksListForExport(pageIndexLinks);
if(res.getStatus().getCode().equals("0")){
LinksList=res.getResult();
if(LinksList!=null && LinksList.size()>0){
Map<String,String> paramMap=new HashMap<String,String>();
String fileChName = request.getParameter("moduleName");
String gridTitle = request.getParameter("gridTitle");
String gridField = request.getParameter("gridField");
paramMap.put("moduleName", fileChName);
paramMap.put("gridTitle", gridTitle);
paramMap.put("gridField", gridField);
return exportService.exportExcelFileSEO(response, paramMap, LinksList);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
=========================基类===========================
/**
* SEO daochu Excel
*/
public String exportExcelFileSEO(HttpServletResponse response, Map<String,String> paramMap, List<Object> objList)throws Exception {
String fileChName = paramMap.get("moduleName");
String gridTitle = paramMap.get("gridTitle");
String gridField = paramMap.get("gridField");
response.reset();
response.setCharacterEncoding("ISO8859-1");
response.setHeader("Content-Disposition", "attachment; filename="+new String(fileChName.getBytes("GBK"), "ISO8859-1"));//fileChName为下载时用户看到的文件名
response.setHeader("Connection", "close");
response.setHeader("Content-Type", "application/octet-stream");
OutputStream out = response.getOutputStream();
Map map = new HashMap();
if(objList.size()>10000){
WritableWorkbook wbook = Workbook.createWorkbook(out);//直接写入内存,不要存放到硬盘中
jxl.write.WritableSheet wsheet = wbook.createSheet("Sheet1", 0);//定义sheet的名称
jxl.write.WritableFont wfont = null; // 字体
jxl.write.WritableCellFormat wcfFC = null; // 字体格式
jxl.write.Label wlabelString = null; // Excel表格的Cell,文本格式
for(int i=0;i<1;i++){
wsheet.setColumnView(i, 40);//设置列宽
}
// 设置excel标题字体
wfont = new jxl.write.WritableFont(WritableFont.ARIAL, 14, WritableFont.BOLD,
false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
wcfFC = new jxl.write.WritableCellFormat(wfont);
wcfFC.setAlignment(jxl.format.Alignment.LEFT); // 设置对齐方式
// 添加excel标题
jxl.write.Label wlabel1 = new jxl.write.Label(5, 0,"导出提示",wcfFC);
wsheet.addCell(wlabel1);
// 设置正文字体
wfont = new jxl.write.WritableFont(WritableFont.TIMES, 12, WritableFont.NO_BOLD,
false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
wcfFC = new jxl.write.WritableCellFormat(wfont);
wcfFC.setAlignment(jxl.format.Alignment.LEFT); // 设置对齐方式
//往Excel输出数据
wlabelString = new jxl.write.Label(5, 1, "导出数据超过一万条,系统不支持,请分批导出",wcfFC);
wsheet.addCell(wlabelString);
wbook.write(); // 写入文件
wbook.close();
out.flush();
out.close();
return "ok";
}
String[] title = gridTitle.split(",");
String[] propery = gridField.split(",");
Integer titleNum = title.length;//Excel中字段的个数
String FileTitle = "";//Excel中正文标题
//--建立EXCEL索引、字段名、字段值的关系,存放到map中
for(int i=0;i<title.length;i++){
String PojoPropery = propery[i];//grid中title和field是一一对应的,所以可以这么写
String toUpp = PojoPropery.replaceFirst(PojoPropery.substring(0,1), PojoPropery.substring(0,1).toUpperCase());//把首字母转换为大写
String methodName = "get"+toUpp;//拼成pojo类中getXXX的方法名称
map.put(PojoPropery, new ExportExcelColumn(i,title[i],methodName));
}
this.export(out, FileTitle, titleNum,objList, map);
return "ok";
}
java基础之导出(Excel)的更多相关文章
- java基础篇 -- 导出excel表格数据
本篇文章基于java把数据库中的数据以Excel的方式导出,欢迎各位大神吐槽: 1.基于maven jar包引入如下: <dependency> <groupId>net.so ...
- Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类
Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...
- java导入、导出Excel文件
一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...
- Java中导入导出Excel -- POI技术
一.介绍: 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实 ...
- java五行代码导出Excel
目录 先看代码 再看效果 EasyExcel 附: Java按模板导出Excel---基于Aspose实现 Java无模板导出Excel,Apache-POI插件实现 已经写过两种Excel导出插件了 ...
- java使用jxls导出Excel
jxls是基于POI的Excel模板导出导入框架.通过使用类似于jstl的标签,有效较少导出Excel的代码量. 1.pom <!-- https://mvnrepository.com/art ...
- Java程序实现导出Excel,支持IE低版本
来博客园两年多了,最近才开通了微博,因为懒所以也一直没有写东西,今天想整理一下自己前段时间遇到的一个导出的问题. 因为项目的需求,要做一部分导出功能.开始的时候用的公司的导出,但是很奇怪有部分模块导出 ...
- Java POI导入导出Excel
1.异常java.lang.NoClassDefFoundError: org/apache/poi/UnsupportedFileFormatException 解决方法: 使用的poi的相关jar ...
- java基础之导入(Excel)2
$(function(){ $("#linksCommonGrid").datagrid({ url:appPath+'/page/pageIndexMrgAct/queryPag ...
随机推荐
- ON DUPLICATE KEY UPDATE 当记录不存在时插入,当记录存在时更新
MySQL 当记录不存在时插入,当记录存在时更新网上基本有三种解决方法.第一种:示例一:插入多条记录假设有一个主键为 client_id 的 clients 表,可以使用下面的语句:INSERTINT ...
- C程序第二章节:算法
1.主要讲了:算法,3种基本结构化的算法(顺序,选择,循环结构),N-S流程图表示算法,伪代码表示算法. 2.输入10个数,输出其中最大的一个数. #include <stdio.h>in ...
- 高放的c++学习笔记之类
类的基本思想是数据抽象和封装1.this 成员函数通过一个名为this的额外隐式参数来访问调用它的对象,当我们调用一个函数的时候,用请求该函数的对象的初始化this. 如果某个类的名字为sale,某个 ...
- 准备开发一个基于canvas的图表库,记录一些东西(一)
开源的图表库已经有很多了,这里从头写个自己的,主要还是 提高自己js的水平,增加复杂代码组织的经验 首先写一个画图的库,供以后画图表使用.经过2天的开发,算是能拿出点东西了,虽然功能还很弱,但是有了一 ...
- ECSTORE AJAX提交的实现
今天向大家介绍在ecstore中怎样使用ajax提交数据 1 <script> //JAVASCRIPT代码 $$(".BB").ADDEVENT('CHANGE',F ...
- PHPCMS 标签与解析小记_Jason
Content模块下的标签解析:phpcms\modules\content\classes\content_tag.class.php 推荐位:public function position
- C程序设计语言练习题1-21
练习1-21 编写程序entab,将空格串替换为最少数量的制表符和空格,但要保持单词之间的间隔不变.假设制表符终止的位置与练习1-20的detab程序的情况相同.当使用一个制表符或者一个空格都可以打到 ...
- JS--图片轮播效果
搞了很长时间才弄清楚图片轮播效果的原理,理解各个事件发生的原因,浪费了这么长的时间,只怪自己的知识太过于薄弱.现将代码写下,供大家参看,如有不妥之处还望指出,大家一起学习. 功能: 1.点击左右两边的 ...
- OpenSSL初瞻及本系列的博文的缘由
OpenSSL初瞻及本系列的博文的缘由1.为什么要写关于“OpenSSL源码分析与学习笔记”系列博文?非常重要的两个原因是Heartbleed和学校课程.我虽然是一个非常崇尚自学的人但是并不代表我不擅 ...
- Xamarin.Forms DataGrid
控件出处 https://components.xamarin.com/ https://components.xamarin.com/gettingstarted/ZumeroDataGrid/tr ...