打开excel写作

时间:2015-08-13 11:40:16

标签: javascript

我想打开一个现有的excel文件,从array(create)写入值并从客户端关闭。 我使用了以下代码:

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;

}

我得到&#34; ActiveX组件无法创建对象&#34;错误。 更改Internet选项中的安全性后,我没有收到错误。

目前,我检查过只写一个值,它写在excel中。 现在我想知道如何将数组中的所有数据写入excel。

由于

2 个答案:

答案 0 :(得分:0)

   var Excel = new ActiveXObject("Excel.Application");
   Excel.Visible = true;
   Excel.Workbooks.Open("C:test.xls");
   var excel_sheet = excel_file.Worksheets("Sheet11");
   var data = excel_sheet.Cells(1,1).Value = create;
   return data;

并且正确调用了URL:C:test.xls使用某些警报功能检查

答案 1 :(得分:0)

这是我的问题的有效解决方案。

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;

感谢所有建议者。