通过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 强制刷新页面的实现代码
Dec 13 Javascript
用JQuery实现全选与取消的两种简单方法
Feb 22 Javascript
javascript类型转换示例
Apr 29 Javascript
WEB前端设计师常用工具集锦
Dec 09 Javascript
jQuery实现表单提交时判断的方法
Dec 13 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
Jun 24 Javascript
微信小程序 数据遍历的实现
Apr 05 Javascript
jquery 禁止鼠标右键并监听右键事件
Apr 27 jQuery
vue给input file绑定函数获取当前上传的对象完美实现方法
Dec 15 Javascript
JS限制输入框输入的实现代码
Jul 02 Javascript
vue项目首屏加载时间优化实战
Apr 23 Javascript
vue实现列表拖拽排序的示例代码
Apr 08 Vue.js
精心挑选的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配置文件中最常用四个ini函数
2007/03/19 PHP
从手册去理解分析PHP session机制
2011/07/17 PHP
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
php页码形式分页函数支持静态化地址及ajax分页
2014/03/28 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
laravel学习教程之关联模型
2016/07/30 PHP
JS window.opener返回父页面的应用
2009/10/24 Javascript
jquery validate.js表单验证的基本用法入门
2010/05/13 Javascript
前台js调用后台方法示例
2013/12/02 Javascript
一个判断抢购时间是否到达的简单的js函数
2014/06/23 Javascript
浅谈jQuery中setInterval()方法
2015/07/07 Javascript
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
基于JS实现仿京东搜索栏随滑动透明度渐变效果
2017/07/10 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
2017/07/19 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
react redux入门示例
2018/04/19 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
node.js 模块和其下载资源的镜像设置的方法
2018/09/06 Javascript
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
vue 详情跳转至列表页实现列表页缓存
2019/03/27 Javascript
swiper4实现移动端导航栏tab滑动切换
2020/10/16 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
2021/01/07 Vue.js
python生成随机验证码(中文验证码)示例
2014/04/03 Python
python获取当前日期和时间的方法
2015/04/30 Python
python下载图片实现方法(超简单)
2017/07/21 Python
如何通过python画loss曲线的方法
2019/06/26 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
使用opencv中匹配点对的坐标提取方式
2020/06/04 Python
Python Selenium异常处理的实例分析
2021/02/28 Python
CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式
2014/10/11 HTML / CSS
Grid 宫格常用布局的实现
2020/01/10 HTML / CSS
MyHeritage美国:家族史研究和DNA测试的领先服务
2019/05/27 全球购物
大学生家政服务项目创业计划书
2014/01/30 职场文书
我的中国心演讲稿
2014/09/04 职场文书