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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取当前打开的excel工作簿的本地路径?相关的知识,希望对你有一定的参考价值。

我在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]);

    }
})();
答案

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

以上是关于如何获取当前打开的excel工作簿的本地路径?的主要内容,如果未能解决你的问题,请参考以下文章

怎样设定EXCEL整个工作簿的顶端标题栏?

VBA Excel 备份:通过 VBA 以新名称保存当前工作簿的副本,保留 VBA 脚本,无提示

Excel VBA计数和存储所有打开的工作簿列表

怎样设定EXCEL整个工作簿的顶端标题栏

如何导出一个excel

vba 打开固定地址下,指定名称的工作簿