【譯】使用Vue建立一個Excel外掛

FrankCheung發表於2018-07-22

這篇文章也發在我的部落格,歡迎圍觀?

Translated by FrankZhang.

如有錯誤,敬請不吝告知,謝謝!


關於本文

在這篇文章中,你將會經歷一遍使用Vue和Excel JavaScript API 打造一個Excel外掛的過程。

預備知識

建立一個新的Vue app

使用Vue CLI生成一個新的Vue app。通過命令列,執行下面的命令,並且如下所述對提示的配置進行設定即可。

vue init webpack my-add-in

複製程式碼

當對彈出的提示進行設定的時候,記得為下面三個設定非預設的配置。其他的你可以全部選擇使用預設的配置。

  • Install vue-router? No
  • Set up unit tests: No
  • Setup e2e tests with Nightwatch? No

【譯】使用Vue建立一個Excel外掛

生成 manifest 檔案

每個外掛都需要一個manifest檔案去定義其設定和能力。

  1. 進入你的應用的資料夾。

    cd my-add-in
    
    複製程式碼
  2. 使用Yeoman生成器為你的外掛生成manifest檔案。執行下面的命令並且如下設定彈出的提示即可。

    yo office 
    
    複製程式碼
    • Choose a project type: Manifest
    • What do you want to name your add-in?: My Office Add-in
    • Which Office client application would you like to support?: Excel
當你完成了上述載入程式,一個manifest檔案以及資原始檔就已經可供使用了,可以用於建立你的專案。

![Yeoman generator](../images/yo-office.png)

> [!NOTE]
> If you're prompted to overwrite **package.json**, answer **No** (do not overwrite).

複製程式碼

保障你應用的安全性

雖然使用HTTPS在外掛開發中並不是強制要求的,但還是強烈建議為你的外掛使用HTTPS。不是SSL-secured(HTTPS)的外掛在使用過程中會出現內容不安全的警告和錯誤提示。如果你計劃在Office Online上使用你的外掛或者將你的外掛釋出在AppSource上,那它必須是SSL-secured。如果你的外掛可以獲取外部資料和服務,它也必須是SSL-secured,以保障傳輸過程中的資料安全。自簽名證照可以在開發和測試環境使用,只要該證照在本地機器上是被信任的即可。

為你的應用開啟HTTPS,僅需要開啟專案根目錄下的package.json,修改dev指令碼,增加--https標識,儲存檔案即可。

"dev": "webpack-dev-server --https --inline --progress --config build/webpack.dev.conf.js"

複製程式碼

更新應用

  1. 在你的編輯器中,開啟manifest檔案(就是專案根目錄下以"manifest.xml"結尾的檔案)。替換所有出現的 https://localhost:3000 為 https://localhost:8080 並儲存檔案。

  2. 開啟 index.html,在</head>標籤之前增加下面的<script>標籤。

    <script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script>
    
    複製程式碼
  3. 開啟src/main.js,_移除_下面的程式碼:

    new Vue({
        el: '#app',
        components: {App},
        template: '<App/>'
    })
    
    複製程式碼

    然後在相同位置增加下面的程式碼。

    const Office = window.Office
    Office.initialize = () => {
      new Vue({
        el: '#app',
        components: {App},
        template: '<App/>'
      })
    }
    
    複製程式碼
  4. 開啟src/App.vue,用下面的程式碼替換該檔案的全部內容,並且在檔案的最後新增一個換行(例如在</style>標籤之後新增換行)並且儲存檔案。

    <template>
    <div>
        <div>
        <div>
            <div>
            <h1>Welcome</h1>
            </div>
        </div>
        <div>
            <div>
            <p>Choose the button below to set the color of the selected range to green.</p>
            <br />
            <h3>Try it out</h3>
            <button @click="onSetColor">Set color</button>
            </div>
        </div>
        </div>
    </div>
    </template>
    
    <script>
    export default {
      name: 'App',
      methods: {
        onSetColor () {
          window.Excel.run(async (context) => {
            const range = context.workbook.getSelectedRange()
            range.format.fill.color = 'green'
            await context.sync()
          })
        }
      }
    }
    </script>
    
    <style>
    #content-header {
        background: #2a8dd4;
        color: #fff;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 80px;
        overflow: hidden;
    }
    
    #content-main {
        background: #fff;
        position: fixed;
        top: 80px;
        left: 0;
        right: 0;
        bottom: 0;
        overflow: auto;
    }
    
    .padding {
        padding: 15px;
    }
    </style>
    
    複製程式碼

啟動開發伺服器

  1. 通過命令列,執行以下命令啟動開發伺服器。

    npm start
    
    複製程式碼
  2. 在瀏覽器中開啟 https://localhost:8080 。如果你的瀏覽器指出該頁面的證照是不被信任的,你需要設定你的電腦信任該證照。

  3. 在你的瀏覽器在沒有任何證照錯誤的情況下載入完成這個外掛頁面,你可以準備測試你的外掛了。

嘗試一下

  1. 按照各個平臺的用法說明,你將在Excel中載入和執行你的外掛。

  2. 在Excel中,選擇 Home 選項,然後選擇 Show Taskpane 按鈕開啟外掛任務窗格。

    Excel Add-in button

  3. 在工作表中選擇任意範圍的單元格。

  4. 在任務窗格,選擇 Set color 按鈕設定選中區域的顏色為綠色。

    Excel Add-in

後續步驟

恭喜!你已經成功使用Vue建立了一個Excel外掛。接下來,請深入學習更多關於Excel外掛的能力並且跟著Excel外掛指引建立一個更復雜的外掛吧。

Excel外掛指導

可供參考

相關文章