我想打开一个现有的excel文件,从数组中写入值(创建),然后从客户端关闭。我使用了以下代码:
for (var c=0; c<arrMCN.length; c++)
{
var mcnCreate = arrMCN[c];
var mcnNumber =mcnCreate.getProperty("agu2a_nb");
var mcnType=mcnCreate.getProperty("pdm_ecn_type");
var mcnProjectCode=mcnCreate.getProperty("pdm_project_code");
var mcnState=mcnCreate.getProperty("state");
var Excel = new ActiveXObject("Excel.Application");
Excel.Visible = true;
Excel.Workbooks.Open("C:\\test.xls");
Excel.Activesheet.Cells(1,1).Value = mcnNumber;
var data = Excel.Activesheet.Cells(1,1).Value;
return data;
}我收到"ActiveX组件无法创建对象“错误。在互联网选项中更改安全设置后,我没有收到错误。
目前,我检查只写了1个值,它是写在excel中的。现在我想知道如何将数组中的所有数据写入到excel中。
谢谢
发布于 2015-08-25 20:23:21
这是我的问题的有效解决方案。
var Excel = new ActiveXObject("Excel.Application");
var fso = new ActiveXObject("Scripting.FileSystemObject");
var checkFile= fso.FileExists("C:\\Report.xlsx");
if(checkFile)
{
fso.DeleteFile("C:\\Report.xlsx",true);
}
var ExcelSheet=new ActiveXObject("Excel.Sheet");
var offset=0;
var row=2;
for (var c=0; c<arrToExcel.length; c++)
{
var createExcel = arrToExcel[c];
var Number =createExcel.getProperty("number");
var Type=createExcel.getProperty("type");
var Code=createExcel.getProperty("code");
ExcelSheet.ActiveSheet.Range("A" + (row + 1 + offset)).Value = Number;
ExcelSheet.ActiveSheet.Range("B" + (row + 1 + offset)).Value = Type;
ExcelSheet.ActiveSheet.Range("C" + (row + 1 + offset)).Value = Code;
row=row+1;
}
offset=offset+1;
Excel.DisplayAlerts=false;
ExcelSheet.SaveAs("C:\\EcnExcelReport.xlsx");
ExcelSheet.Application.Quit();
Excel.DisplayAlerts=true;感谢所有提出建议的人。
https://stackoverflow.com/questions/31987187
复制相似问题