Я использую шаблон «Веб-надстройка 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]);
}
})();