通过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 相关文章推荐
2007/12/23更新创意无限,简单实用(javascript log)
Dec 24 Javascript
javascript学习笔记(十二) RegExp类型介绍
Jun 20 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
Sep 14 Javascript
jQuery 中$(this).index与$.each的使用指南
Nov 20 Javascript
jquery简单实现图片切换效果的方法
May 12 Javascript
jQuery简单实现两级下拉菜单效果代码
Sep 15 Javascript
用JS实现轮播图效果(二)
Jun 26 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
Oct 24 Javascript
浅谈jquery拼接字符串效率比较高的方法
Feb 22 Javascript
Vue使用NProgress的操作过程解析
Oct 10 Javascript
小程序登录之支付宝授权的实现示例
Dec 13 Javascript
vuecli项目构建SSR服务端渲染的实现
Oct 30 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 进行手机 APP 开发(API 接口开发)
2014/08/11 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
深入剖析PHP中printf()函数格式化使用
2016/05/23 PHP
WordPress过滤垃圾评论的几种主要方法小结
2016/07/11 PHP
jquery构造器的实现代码小结
2011/05/16 Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
实现checkbox全选、反选、取消JavaScript小脚本异常
2014/04/10 Javascript
在JS数组特定索引处指定位置插入元素的技巧
2014/08/24 Javascript
jquery操作复选框checkbox的方法汇总
2015/02/05 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
2015/08/04 Javascript
javascript实现下拉提示选择框
2015/12/29 Javascript
JavaScript笔记之数据属性和存储器属性
2016/03/31 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
webpack项目使用eslint建立代码规范实现
2019/05/16 Javascript
React路由鉴权的实现方法
2019/09/05 Javascript
微信小程序request请求封装,验签代码实例
2019/12/04 Javascript
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
Linux系统(CentOS)下python2.7.10安装
2018/09/26 Python
用Python编写一个简单的CS架构后门的方法
2018/11/20 Python
python实现发送form-data数据的方法详解
2019/09/27 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
2019/11/16 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
python sleep和wait对比总结
2021/02/03 Python
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
AmazeUI 网格的实现示例
2020/08/13 HTML / CSS
英国知名美妆护肤在线商城:Zest Beauty
2018/04/24 全球购物
自主招生自荐信范文
2013/12/04 职场文书
2014年监理工作总结范文
2014/11/17 职场文书
转让协议书
2015/01/27 职场文书
2015年防汛工作总结
2015/05/15 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
幼儿园师德师风心得体会
2016/01/12 职场文书
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏
JavaWeb Servlet开发注册页面实例
2022/04/11 Java/Android