通过Javascript将数据导出到外部Excel文档的函数代码


Posted in Javascript onJune 15, 2012
function AutomateExcel() { 
try { 
//Start Excel and get Application object. 
var oXL; 
try 
{ 
oXL = new ActiveXObject("Excel.Application"); 
} 
catch(e) 
{ 
alert("无法启动Excel!\n\n如果您确信您的电脑中已经安装了Excel," + "那么请调整IE的安全级别。\n\n具体操作:\n\n" + "工具 → Internet选项 → 安全 → 自定义级别 → 对没有标记为安全的ActiveX进行初始化和脚本运行 → 启用"); 
return false; 
} 
//Get a new workbook. 
var oWB = oXL.Workbooks.Add(); 
var oSheet = oWB.ActiveSheet; 
var table = $("#GridView1")[0]; 
var rows = table.rows; 
var columns = table.rows(0).cells; 
var codes = ""; 
//设置标题 
var name = "第 <%= _CurrentPage %> 页"; 
oXL.Caption = name; 
oSheet.Name = name; 
//设置表头 
oSheet.Cells(1, 1).Value = "申请单编号"; 
oSheet.Cells(1, 2).Value = "出货金额"; 
oSheet.Cells(1, 3).Value = "营销部门"; 
oSheet.Cells(1, 4).Value = "业务人员"; 
oSheet.Cells(1, 5).Value = "内部合同号"; 
oSheet.Cells(1, 6).Value = "客户名称"; 
oSheet.Cells(1, 7).Value = "币种"; 
oSheet.Cells(1, 8).Value = "客户船期"; 
oSheet.Cells(1, 9).Value = "国别"; 
oSheet.Cells(1, 10).Value = "核销单号"; 
oSheet.Cells(1, 11).Value = "发票号码"; 
oSheet.Cells(1, 12).Value = "报关日期"; 
//获取当前页申请单编号 
for (var i = 2; i <= rows.length; i++) { 
codes += "'" + rows(i - 1).cells(0).innerText + "',"; 
} 
codes += "''"; 
//获取数据并填充数据到EXCEL 
$.post("../Handlers/ShippingApplyHandler.ashx", 
{ Action: "ExportData", ExportCondition: codes }, 
function (views) { 
if (views != null) { 
var beginindex = 1; 
var endindex = 1; 
for (var i = 0; i < views.length; i++) { 
endindex++; 
oSheet.Cells(i + 2, 1).Value = views[i].SACode; 
oSheet.Cells(i + 2, 2).Value = views[i].AmountSum; 
oSheet.Cells(i + 2, 3).Value = views[i].Department; 
oSheet.Cells(i + 2, 4).Value = views[i].SalesName; 
oSheet.Cells(i + 2, 5).Value = views[i].ContractNo; 
oSheet.Cells(i + 2, 6).Value = views[i].CustomerName; 
oSheet.Cells(i + 2, 7).Value = views[i].CurrencyCode; 
if (views[i].CustomerSchedule != null) { 
oSheet.Cells(i + 2, 8).Value = ConvertToJSDate(views[i].CustomerSchedule).Format("yyyy-MM-dd"); 
} 
oSheet.Cells(i + 2, 9).Value = views[i].Country; 
oSheet.Cells(i + 2, 10).Value = views[i].VerificationNumber; 
oSheet.Cells(i + 2, 11).Value = views[i].InvoiceNumber; 
if (views[i].CustomsDate != null) { 
oSheet.Cells(i + 2, 12).Value = ConvertToJSDate(views[i].CustomsDate).Format("yyyy-MM-dd"); 
} 
if (i > 0 && views[i - 1].SACode == views[i].SACode) { 
oSheet.Range(oSheet.Cells(beginindex, 1), oSheet.Cells(endindex, 1)).Merge(); 
oSheet.Range(oSheet.Cells(beginindex, 2), oSheet.Cells(endindex, 2)).Merge(); 
oSheet.Range(oSheet.Cells(beginindex, 3), oSheet.Cells(endindex, 3)).Merge(); 
oSheet.Range(oSheet.Cells(beginindex, 4), oSheet.Cells(endindex, 4)).Merge(); 
oSheet.Range(oSheet.Cells(beginindex, 5), oSheet.Cells(endindex, 5)).Merge(); 
oSheet.Range(oSheet.Cells(beginindex, 6), oSheet.Cells(endindex, 6)).Merge(); 
oSheet.Range(oSheet.Cells(beginindex, 7), oSheet.Cells(endindex, 7)).Merge(); 
oSheet.Range(oSheet.Cells(beginindex, 8), oSheet.Cells(endindex, 8)).Merge(); 
beginindex = endindex; 
} 
else { 
beginindex++; 
} 
} 
} 
}, "json"); 
//设置自动列宽 
oSheet.Columns.AutoFit(); 
//设置excel为可见 
oXL.Visible = true; 
//将Excel交由用户控制 
oXL.UserControl = true; 
//禁止提示 
oXL.DisplayAlerts = false; 
//释放资源 
//oXL = null; 
//oWB = null; 
//oSheet = null; 
} 
catch (e) { 
} 
}
Javascript 相关文章推荐
jquery实现侧边弹出的垂直导航
Dec 09 Javascript
javascript字符串循环匹配实例分析
Jul 17 Javascript
JSON字符串转换JSONObject和JSONArray的方法
Jun 03 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
Jun 20 Javascript
实例详解jQuery的无new构建
Aug 02 Javascript
AngularJS 工作原理详解
Aug 18 Javascript
jQuery ajax的功能实现方法详解
Jan 06 Javascript
老生常谈Bootstrap媒体对象
Jul 06 Javascript
zTree节点文字过多的处理方法
Nov 24 Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
Sep 14 Javascript
150行Node.js实现的dns代理工具
Aug 02 Javascript
24行JavaScript代码实现Redux的方法实例
Nov 17 Javascript
精心挑选的15个jQuery下拉菜单制作教程
Jun 15 #Javascript
jQuery操作input type=radio的实现代码
Jun 14 #Javascript
jQuery操作 input type=checkbox的实现代码
Jun 14 #Javascript
基于jQuery的遍历同id元素 并响应事件的代码
Jun 14 #Javascript
jQuery操作select的实例代码
Jun 14 #Javascript
jQuery动态添加 input type=file的实现代码
Jun 14 #Javascript
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
Jun 14 #Javascript
You might like
PHP生成网页快照 不用COM不用扩展.
2010/02/11 PHP
用PHP为SHOPEX增加日志功能代码
2010/07/02 PHP
PHP转换文件夹下所有文件编码的实现代码
2013/06/06 PHP
php生成缩略图填充白边(等比缩略图方案)
2013/12/25 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
2015/12/28 PHP
Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
2016/03/29 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
2016/05/16 PHP
PHP实现的随机红包算法示例
2017/08/14 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
2017/10/25 PHP
prototype 学习笔记整理
2009/07/17 Javascript
通过JS来动态的修改url,实现对url的增删查改
2014/09/01 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
jQuery实现在最后一个元素之前插入新元素的方法
2015/07/18 Javascript
谈谈JavaScript异步函数发展历程
2015/09/29 Javascript
谈一谈jQuery核心架构设计
2016/03/28 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
2017/02/14 Javascript
Angular2仿照微信UI实现9张图片上传和预览的示例代码
2017/10/19 Javascript
vue项目中的webpack-dev-sever配置方法
2017/12/14 Javascript
Python对象的深拷贝和浅拷贝详解
2014/08/25 Python
python判断字符串是否纯数字的方法
2014/11/19 Python
python自动翻译实现方法
2016/05/28 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
python七夕浪漫表白源码
2019/04/05 Python
python实现图片转字符小工具
2019/04/30 Python
Python 脚本实现淘宝准点秒杀功能
2019/11/13 Python
美国生鲜及杂货电商:FreshDirect
2018/01/29 全球购物
2014年单位植树节活动方案
2014/03/23 职场文书
家长会演讲稿
2014/04/26 职场文书
岗位明星事迹材料
2014/05/18 职场文书
学校清明节活动总结
2014/07/04 职场文书
幼儿园家长工作总结2015
2015/04/25 职场文书
2015年体检中心工作总结
2015/05/27 职场文书
2016年学校招生广告语
2016/01/28 职场文书
一条慢SQL语句引发的改造之路
2022/03/16 MySQL
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL