通过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中的isNaN函数使用说明
Nov 10 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
Apr 15 Javascript
div失去焦点事件实现思路
Apr 22 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
Aug 19 Javascript
一篇文章掌握RequireJS常用知识
Jan 26 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
Jun 13 Javascript
vue.js select下拉框绑定和取值方法
Mar 03 Javascript
vue 登录滑动验证实现代码
Aug 24 Javascript
javascript实现小型区块链功能
Apr 03 Javascript
解决layUI的页面显示不全的问题
Sep 20 Javascript
js仿京东放大镜效果
Aug 09 Javascript
浅谈vue.watch的触发条件是什么
Nov 07 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 include,include_once,require,require_once
2008/09/05 PHP
php 301转向实现代码
2008/09/18 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
2012/03/01 PHP
PHP操作MongoDB GridFS 存储文件的详解
2013/06/20 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
javascript 设置某DIV区域内的checkbox复选框
2009/11/30 Javascript
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
使用node.js 获取客户端信息代码分享
2014/11/26 Javascript
JS清除选择内容的方法
2015/01/29 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
2016/05/19 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
jquery延迟对象解析
2016/10/26 Javascript
JavaScript登录验证码的实现
2016/10/27 Javascript
移动端日期插件Mobiscroll.js使用详解
2016/12/19 Javascript
jQuery UI仿淘宝搜索下拉列表功能
2017/01/10 Javascript
微信小程序新手教程之页面打开数量限制
2019/03/03 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
2019/07/19 Javascript
python使用in操作符时元组和数组的区别分析
2015/05/19 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
2016/06/07 Python
R语言 vs Python对比:数据分析哪家强?
2017/11/17 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
2019/06/17 Python
appium+python adb常用命令分享
2020/03/06 Python
在Keras中实现保存和加载权重及模型结构
2020/06/15 Python
用CSS3将你的设计带入下个高度
2009/08/08 HTML / CSS
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
Java中实现多态的机制是什么?
2014/12/07 面试题
单位门卫岗位职责
2013/12/20 职场文书
机械设计专业大学生职业生涯规划书范文
2014/09/13 职场文书
努力学习保证书
2015/02/26 职场文书
我爱我班主题班会
2015/08/13 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书
如何在CSS中绘制曲线图形及展示动画
2021/05/24 HTML / CSS
Win11怎么把合并的任务栏分开 Win11任务栏合并分开教程
2022/04/06 数码科技