通过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图片轮播的具体实现
Sep 11 Javascript
浅谈angular.js中实现双向绑定的方法$watch $digest $apply
Oct 14 Javascript
基于jquery实现日历签到功能
Sep 11 Javascript
Ubuntu系统下Angularjs开发环境安装
Sep 01 Javascript
AngularJS ng-style中使用filter
Sep 21 Javascript
微信小程序开发之toast提示插件使用示例
Jun 08 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
Sep 21 Javascript
vue webpack打包后图片路径错误的完美解决方法
Dec 07 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
Jan 12 Javascript
mustache.js实现首页元件动态渲染的示例代码
Dec 28 Javascript
nestjs中异常过滤器Exceptionfilter的具体使用
Feb 07 Javascript
JavaScript小技巧带你提升你的代码技能
Sep 15 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操作数组的一些函数整理介绍
2011/07/17 PHP
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
2013/08/13 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
2017/02/07 PHP
JScript 脚本实现文件下载 一般用于下载木马
2009/10/29 Javascript
jquery 学习笔记一
2010/04/07 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
2015/05/19 Javascript
node网页分段渲染详解
2016/09/05 Javascript
jQuery弹出遮罩层效果完整示例
2016/09/13 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
2017/12/27 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
2018/01/16 Javascript
详解vue-loader在项目中是如何配置的
2018/06/04 Javascript
js中apply和call的理解与使用方法
2019/11/27 Javascript
javascript浅层克隆、深度克隆对比及实例解析
2020/02/09 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
2020/04/09 Javascript
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
Python探索之Metaclass初步了解
2017/10/28 Python
python 找出list中最大或者最小几个数的索引方法
2018/10/30 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
Python实现AI换脸功能
2020/04/10 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
2020/04/27 Python
Python接口测试文件上传实例解析
2020/05/22 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
jupyter notebook指定启动目录的方法
2021/03/02 Python
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
耐克亚太地区:Nike APAC
2019/12/07 全球购物
教师实习期自我鉴定
2013/10/06 职场文书
幼儿园教学管理制度
2014/02/04 职场文书
检察机关个人对照检查材料
2014/09/15 职场文书
党的群众路线教育实践活动个人整改措施范文
2014/11/04 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
刑事案件上诉状
2015/05/23 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书