如何获取当前打开的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工作簿的本地路径?的主要内容,如果未能解决你的问题,请参考以下文章