首页 > 办公 > Excel > 正文

通过Javascript将数据导出到外部Excel文档的函数代码

2019-12-24 02:59:20
字体:
来源:转载
供稿:网友
通过Javascript将数据导出到外部Excel文档的函数代码,需要的朋友可以参考下

代码如下:

function AutomateExcel() { 
try { 
//Start Excel and get Application object. 
var oXL; 
try 

oXL = new ActiveXObject("Excel.Application"); 

catch(e) 

alert("无法启动Excel!nn如果您确信您的电脑中已经安装了Excel," + "那么请调整IE的安全级别。nn具体操作:nn" + "工具 → 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) { 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表