Как я могу получить локальный путь к открытой в настоящее время книге Excel? - PullRequest
0 голосов
/ 15 марта 2019

Я использую шаблон «Веб-надстройка Excel» по умолчанию в Visual Studio 2017. Я пытаюсь создать надстройку Excel, которая вставляет копию существующей книги в текущую.Первый шаг - получить полный путь и имя текущей рабочей книги.Я получил код от здесь .Я использую бета-версию Excel API .В строке 'var myFile = document.getElementById ("file"); "myFile всегда нулевойЯ предполагаю, что нулевое значение связано с тем, что рабочая книга не «загружена», но рабочая книга открывается при запуске программы.

Вот код из Home.js:

'use strict';

(function () {
    Office.onReady(function () {
        // Office is ready
        $(document).ready(function () {
            // The document is ready
            $('#RunMacroButton').click(RunMacro);
        });
    });

    function RunMacro() {


        var myFile = document.getElementById("file");
        var reader = new FileReader();

        reader.onload = (function (event) {
            Excel.run(function (context) {
                // strip off the metadata before the base64-encoded string
                var startIndex = event.target.result.indexOf("base64,");
                var workbookContents = event.target.result.substr(startIndex + 7);

                Excel.createWorkbook(workbookContents);
                return context.sync();
            }).catch(errorHandlerFunction);
        });

        // read in the file as a data URL so we can parse the base64-encoded string
        reader.readAsDataURL(myFile.files[0]);

    }
})();

1 Ответ

0 голосов
/ 21 марта 2019

Строка 'var myFile = document.getElementById ("file");' всегда пусто, потому что нет элемента с именем "файл". Это также неправильный способ получить путь к текущей открытой книге. Вместо этого используйте «Office.context.document.url», чтобы вернуть путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...