2017-08-17 36 views
0

我想從使用VS構建的office 365插件獲取SheetName。 以下是代碼。在辦公室addin的office.js中獲取表名

var ctx = new Excel.RequestContext(); 
     workbook = ctx.workbook;    
     var Sheet = workbook.worksheets.getActiveWorksheet(); 
     Sheet.load("name"); 
     var name; 
     ctx.sync().then(function() { 
      name = Sheet.name; 
     }); 

但我不能擊中ctx.sync()。then函數。 請解釋我是否缺少一些東西。

也可以使用上面的示例在現有工作簿中加載excel文件。 加載文件我的意思是讓我說我​​從一個服務,我需要顯示在當前的工作簿中收到一個Excel文件。像在Excel客戶端插件,我們可以加載應用程序

回答

1

一個excel文件,這裏有幾個建議:

  • 使用Excel.run,而不是手動創建請求上下文。 (除其他外,這將有助於錯誤處理。)
  • 確保您還包括錯誤處理(沒有適當的錯誤處理邏輯,如果沒有任何錯誤指示,事情可能會默默失敗)。
  • 務必在context.sync()之前包含return(即return context.sync();)。

這裏有一個代碼段實現這些建議,您的方案的背景下:

function getActiveWorksheet() { 
    Excel.run(function (context) { 
     var sheet = context.workbook.worksheets.getActiveWorksheet(); 
     sheet.load("name"); 
     return context.sync() 
      .then(function() { 
       console.log("The active worksheet is " + sheet.name); 
      }); 
    }) 
     .catch(function (error) { 
      console.log(error.debugInfo); 
     }); 
} 

關於你的最後一個問題(」 也是它可以加載在使用現有的工作簿中的Excel文件上面的例子。「) - 我不清楚你在這裏問什麼。您能否更新您的問題,並提供更多關於您想要實現的信息?

+0

Kim Brandi謝謝你的回答。 加載文件我的意思是讓我說我​​從一個服務,我需要顯示在當前的工作簿中收到一個Excel文件。 像在Excel客戶端插件中一樣,我們可以在應用程序中加載一個excel文件。 – Sandy

+0

@Sandy - 由於這是一個完全不同的問題(與獲取表單名稱無關),請您在Stack Overflow上創建一個新帖子來問這個問題嗎?通過爲每個不同的問題/主題創建一個帖子,您不僅更有可能獲得良好的反饋,還可以讓其他人從未來的信息中受益。最後,如果我上面的回答充分解決了這個問題的主要部分(「在辦公室加載項中獲取office.js中的工作表名稱」),請將其標記爲「已接受」答案(以便其他人也可以從此信息中受益) 。謝謝! –

+0

KIm Brandi你是對的..爲此創建一個新帖子 – Sandy