通过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 相关文章推荐
javascript 写类方式之八
Jul 05 Javascript
jQuery中的常用事件总结
Dec 27 Javascript
js函数参数设置默认值的一种变通实现方法
May 26 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
Jun 23 Javascript
基于javascript实现泡泡大冒险网页版小游戏
Mar 23 Javascript
前端页面文件拖拽上传模块js代码示例
May 19 Javascript
详谈ES6中的迭代器(Iterator)和生成器(Generator)
Jul 31 Javascript
Vue之Vue.set动态新增对象属性方法
Feb 23 Javascript
Vue单页应用引用单独的样式文件的两种方式
Mar 30 Javascript
JS实现的简单折叠展开动画效果示例
Apr 28 Javascript
vue实现中部导航栏布局功能
Jul 30 Javascript
vue实现pdf文档在线预览功能
Nov 26 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来写记数器(详细介绍)
2006/10/09 PHP
php 批量查询搜狗sogou代码分享
2015/05/17 PHP
PHP内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
php UNIX时间戳用法详解
2017/02/16 PHP
php微信公众号开发之翻页查询
2018/10/20 PHP
javascript下IE与FF兼容函数收集
2008/09/17 Javascript
仿163填写邮件地址自动显示下拉(无优化)
2008/11/05 Javascript
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
setTimeout自动触发一个js的方法
2014/01/15 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
jquery中map函数与each函数的区别实例介绍
2014/06/23 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
JavaScript转换与解析JSON方法实例详解
2015/11/24 Javascript
javascript中eval和with用法实例总结
2015/11/30 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
2016/05/12 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
微信小程序实现天气预报功能
2018/07/18 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
vue文件运行的方法教学
2019/02/12 Javascript
js实现倒计时器自定义时间和暂停
2019/02/25 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
Python 流程控制实例代码
2009/09/25 Python
在Python上基于Markov链生成伪随机文本的教程
2015/04/17 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
python爬虫可以爬什么
2020/06/16 Python
Python如何急速下载第三方库详解
2020/11/02 Python
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
县委务虚会发言材料
2014/10/20 职场文书
导游词之无锡梅园
2019/11/28 职场文书
python3美化表格数据输出结果的实现代码
2021/04/14 Python
写好Python代码的几条重要技巧
2021/05/21 Python
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技