通过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 相关文章推荐
ExtJS扩展 垂直tabLayout实现代码
Jun 21 Javascript
JavaScript Event学习第四章 传统的事件注册模型
Feb 07 Javascript
jquery学习笔记二 实现可编辑的表格
Apr 09 Javascript
javascript实现五星评分功能
Nov 10 Javascript
一分钟理解js闭包
May 04 Javascript
详细探究ES6之Proxy代理
Jul 22 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
Aug 24 Javascript
jQuery中JSONP的两种实现方式详解
Sep 26 Javascript
详解Vue生命周期的示例
Mar 10 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
May 05 jQuery
讲解vue-router之什么是编程式路由
May 28 Javascript
Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法
Oct 12 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
一个用php3编写的简单计数器
2006/10/09 PHP
php的一个登录的类 [推荐]
2007/03/16 PHP
PHP获取数组最大值下标的方法
2015/05/12 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
PHP的JSON封装、转变及输出操作示例
2019/09/27 PHP
JavaScript 面向对象编程(2) 定义类
2010/05/18 Javascript
js调用activeX获取u盘序列号的代码
2011/11/21 Javascript
JavaScript将相对地址转换为绝对地址示例代码
2013/07/19 Javascript
在JS中如何调用JSP中的变量
2014/01/22 Javascript
浅谈JavaScript字符串拼接
2015/06/25 Javascript
使用JS模拟锚点跳转的实例
2018/02/01 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
Python全局变量操作详解
2015/04/14 Python
Python中字符串对齐方法介绍
2015/05/21 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
Python学习笔记之字符串和字符串方法实例详解
2019/08/22 Python
Numpy一维线性插值函数的用法
2020/04/22 Python
Python判断字符串是否为空和null方法实例
2020/04/26 Python
基于tensorflow for循环 while循环案例
2020/06/30 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
HTML5 embed标签定义和用法详解
2014/05/09 HTML / CSS
Alexandre Birman美国官网:亚历山大·伯曼
2019/10/30 全球购物
毕业自荐书
2013/12/09 职场文书
好人好事事迹材料
2014/02/12 职场文书
创新型城市实施方案
2014/03/06 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
4s店市场专员岗位职责
2014/04/09 职场文书
党支部综合考察材料
2014/05/19 职场文书
高中教师个人总结
2015/02/10 职场文书
2015年财务工作总结范文
2015/03/31 职场文书
CSS使用Flex和Grid布局实现3D骰子
2022/08/05 HTML / CSS
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL