使用Javascript将对象数组导出到Excel中 [英] Export array of objects into Excel using Javascript

查看:789
本文介绍了使用Javascript将对象数组导出到Excel中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在写一个客户端方法,创建一个对象数组。我打开一个现有的excel来写入数组中的值。我使用getProperty获取值并存储在变量中。
当我尝试在excel中编写它们时,我得到事件处理程序失败的消息;。



代码:

  var getItemtoExcel = document.thisItem.newItem(ToExcel,get); 
getItemtoExcel = getItemtoExcel.apply();

var arrToExcel = Array();
for(var j = 0; j< getItemtoExcel.getItemCount(); j ++)
{
var gotItemForExcel = getItemtoExcel.getItemByIndex(j);
arrToExcel.push(gotItemForExcel);
}
var Excel = new ActiveXObject(Excel.Application);
Excel.Visible = true;
Excel.Workbooks.Open(C:\\ test.xls);
var offset = 0;
var row = 2;
(var c = 0; c< arrToExcel.length; c ++)
{
var createExcel = arrToExcel [c];
var Number = createExcel.getProperty(nb);
var Type = createExcel.getProperty(type);
var Code = createExcel.getProperty(code);
var State = createExcel.getProperty(state);
Excel.Worksheets(sheet11)。Range(A& row + 1 + offset).Value = Number;
Excel.Worksheets(sheet11)。Range(B& row + 1 + offset).Value = Type;
Excel.Worksheets(sheet11)。Range(C& row + 1 + offset).Value = Code;
Excel.Worksheets(sheet11)。Range(D& row + 1 + offset).Value = State;
row = row + 1;
}
offset = offset + 1;
返回这个;

document.thisItem.newItem()来自ARASPLM。它用于在ARAS中调用ItemType(Item)的标准

解决方案

感谢您对此问题的所有建议。
我已经完成将数组导出成.csv文件成功。
这是代码,对于其他需要的代码。

  var getItemtoExcel = this.newItem(MyForm得到); 
getItemtoExcel = getItemtoExcel.apply();

var arrToExcel = Array();
for(var j = 0; j< getItemtoExcel.getItemCount(); j ++)
{
var gotItemForExcel = getItemtoExcel.getItemByIndex(j);
arrToExcel.push(gotItemForExcel);
}

var fso = new ActiveXObject(Scripting.FileSystemObject);
var s = fso.CreateTextFile(C:\\REPORT.csv,true);
var title =Report;
s.WriteLine(title);
var header =Number+; +类型+; +代码+; +Created On+; +州+'\\\
';
s.WriteLine(header); (var c = 0; c< arrToExcel.length; c ++)

{
var createExcel = arrToExcel [c];

var Number = createExcel.getProperty(nb);
var Type = createExcel.getProperty(type);
if(Type === undefined){Type =;}
var Code = createExcel.getProperty(code);
if(Code === undefined){Code =;}
var Date = createExcel.getProperty(created_on);
var State = createExcel.getProperty(created_by_id / @ keyed_name);

var value = Number +; +类型+; +代码+; + Date +; +州
s.WriteLine(value);
}
s.Close();
alert(报告保存为C:\\\REPORT.csv);
返回这个;


I'm writing a client side method, that creates an array of objects.I open an existing excel to write the values from the array. I get the values using getProperty and store in a variable. When I try to write those in the excel, I get "event handler failed with message";" ".

Code:

var getItemtoExcel=document.thisItem.newItem("ToExcel", "get");
getItemtoExcel=getItemtoExcel.apply();

var arrToExcel = Array();
for (var j=0; j<getItemtoExcel.getItemCount(); j++) 
{
var gotItemForExcel=getItemtoExcel.getItemByIndex(j);
arrToExcel.push(gotItemForExcel);
}
var Excel = new ActiveXObject("Excel.Application");
Excel.Visible = true;
Excel.Workbooks.Open("C:\\test.xls");
var offset=0;
var row=2;
for (var c=0; c<arrToExcel.length; c++)
{
var createExcel = arrToExcel[c];
var Number =createExcel.getProperty("nb");
var Type=createExcel.getProperty("type");
var Code=createExcel.getProperty("code");
var State=createExcel.getProperty("state");
Excel.Worksheets("sheet11").Range("A" & row + 1 +  offset).Value = Number;
Excel.Worksheets("sheet11").Range("B" & row + 1 + offset).Value = Type;
Excel.Worksheets("sheet11").Range("C" & row + 1 + offset).Value = Code;
Excel.Worksheets("sheet11").Range("D" & row + 1 + offset).Value = State;
row=row+1;
}
offset=offset+1;
return this;

document.thisItem.newItem() is from ARASPLM. Its the standard used to call an ItemType(Item) in ARAS

解决方案

Thanks for all your suggestions on this question. I have done with exporting the array into a .csv file successfully. Here's the code, for others who will need.

var getItemtoExcel=this.newItem("MyForm", "get");
getItemtoExcel=getItemtoExcel.apply();

var arrToExcel = Array();
for (var j=0; j<getItemtoExcel.getItemCount(); j++) 
{
var gotItemForExcel=getItemtoExcel.getItemByIndex(j);
arrToExcel.push(gotItemForExcel);
}

var fso = new ActiveXObject("Scripting.FileSystemObject"); 
var s = fso.CreateTextFile("C:\\REPORT.csv", true); 
var title="Report";
s.WriteLine(title);
var header="Number" + ";" + "Type" + ";" + "Code"  + ";" + "Created On"  + ";" +  "State" +  '\n' ;
s.WriteLine(header);

for (var c=0; c<arrToExcel.length; c++){
var createExcel = arrToExcel[c];

var Number =createExcel.getProperty("nb");
var Type=createExcel.getProperty("type");
if(Type===undefined){Type="";}
var Code=createExcel.getProperty("code");
if(Code===undefined){Code="";}
var Date=createExcel.getProperty("created_on");
var State=createExcel.getProperty("created_by_id/@keyed_name");

var value=Number + ";" + Type + ";" + Code + ";" + Date + ";" + State;
s.WriteLine(value);
}
s.Close();
alert("Report Saved as C:\\REPORT.csv");
return this;

这篇关于使用Javascript将对象数组导出到Excel中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆