从Javascript访问Excel的对象模型

时间:2015-12-07 19:09:27

标签: javascript excel

我在javascript中有excel作为activeX对象。我似乎错过了一些关于如何与对象模型进行交互的内容。当我尝试将“range.Value”分配给数组时,我的监视窗口显示我尝试将数据从“未定义”拉出的范围的“值”属性的值。

很遗憾,我无法在工作时更新机器上过时的浏览器,因此无法上传图片。

我的剧本:

function open_files(A, B, C) 
{ 
 var excel = new ActiveXObject("Excel.Application");
 excel.Visible=true;
 excel.DisplayAlerts = false;
 var wbA = excel.Workbooks.Open(document.getElementById(A).value);
 var wbB = excel.Workbooks.Open(document.getElementById(B).value);
 var wbC = excel.Workbooks.Open(document.getElementById(C).value);

 excel.EnableEvents = false;
 excel.ScreenUpdating = false;
 excel.Calculation = -4135 //xlCalculationManual enumeration;

 var wb_collection = [wbA, wbB, wbC];

 excel.Application.Run("'" + wbA.name + "'" + '!update_links');

 var CLIN_list = [wbA.Sheets("Control Form").Range("B62:B141").value(1)]

 for (i = 0; i = CLIN_list.length; i++)
 { 
  if (CLIN_list(i) > 0)
  {
   var CLIN_list_count = i
  }
 }

 var decrement_range_start = wbA.Sheets("Fee & Decrement Table").Range("AJ14")

 //for (i = 0; i < 80; i++){
   //Sheets("Fee & Decrement Table").Cells(decrement_range_start.column+i


 // Model Setup for VBA
 wbA.Sheets("CONTROL FORM").Activate
 wbA.Sheets("CONTROL FORM").OLEObjects("TextBox21").Object.Text = wbB.fullname
 wbA.Sheets("CONTROL FORM").OLEObjects("TextBox22").Object.Text = wbC.fullname

 excel.Application.Run("'" + wbA.name + "'" + '!Run_JPO');

1 个答案:

答案 0 :(得分:0)

我在另一个论坛上找到了答案。范围不能直接分配给js数组,必须进行转换。下面的行用于填充我的CLIN_list变量。

.controller("testCtrl", ['$scope', 'myFac', function($scope, myFac) {    
    if($scope.someArbitraryBool === true) {
        //Here you could call the get data method.
        myFac.getData().then(function () {
            //Execute code that is dependent on myFac resolving
        });
    } 
}]);