如何获取当前打开的Excel工作簿的本地路径?

时间:2019-03-15 15:56:33

标签: javascript excel-addins

我在Visual Studio 2017中使用默认的“ Excel Web加载项”模板。我试图创建一个将现有工作簿副本插入到当前工作簿中的excel加载项。第一步是获取当前工作簿的完整路径和名称。我从here获得了代码。我正在使用beta excel API。在“ var myFile = document.getElementById(“ file”);”行中myFile始终为null。我认为null值是因为未“加载”工作簿,但在运行程序时确实打开了工作簿。

这是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 :(得分:0)

'var myFile = document.getElementById(“ file”);'行始终为null,因为没有称为“文件”的元素。这也是获取当前打开的工作簿路径的错误方法。而是使用“ Office.context.document.url”返回路径。