Unofficial Office.js (https://github.com/OfficeDev/office-js) wrapper for Flutter/Dart
Please note: the package is a Work In Progress and in highly risk of change. Do not use it in production.
To start, add in the index.html "Initialize office" then
section.
That's all you need to do)
window.addEventListener("load", function (ev) {
// Download main.dart.js
_flutter.loader
.loadEntrypoint({
serviceWorker: {
serviceWorkerVersion: serviceWorkerVersion,
},
})
.then(function (engineInitializer) {
return engineInitializer.initializeEngine();
})
.then(function (appRunner) {
return appRunner.runApp();
})
/** Initialize office **/
.then(function () {
console.log("intializing office");
const officeEl = document.getElementById("office");
if (officeEl != null) return;
const scriptTag = document.createElement("script");
scriptTag.src =
"https://appsforoffice.microsoft.com/lib/1/hosted/office.js";
scriptTag.id = "office";
scriptTag.addEventListener("load", () => {
console.log("office loaded");
class OfficeHelpers {
officeOnReady = Office.onReady;
// may cause an error Excel is not defined
runExcel = Excel.run;
}
window["getOfficeHelpers"] = () => new OfficeHelpers();
console.log("helpers injected");
});
document.getElementsByTagName("head")[0].appendChild(scriptTag);
});
});
To start, add in the index.html "Initialize office" then
section.
That's all you need to do)
window.addEventListener("load", function (ev) {
// Download main.dart.js
_flutter.loader
.loadEntrypoint({
serviceWorker: {
serviceWorkerVersion: serviceWorkerVersion,
},
})
.then(function (engineInitializer) {
return engineInitializer.initializeEngine();
})
.then(function (appRunner) {
return appRunner.runApp();
})
/** Initialize office **/
.then(function () {
console.log("intializing office");
const officeEl = document.getElementById("office");
if (officeEl != null) return;
const scriptTag = document.createElement("script");
scriptTag.src =
"https://appsforoffice.microsoft.com/lib/1/hosted/office.js";
scriptTag.id = "office";
scriptTag.addEventListener("load", () => {
console.log("office loaded");
class OfficeHelpers {
officeOnReady = Office.onReady;
context = Office.context;
}
window["getOfficeHelpers"] = () => new OfficeHelpers();
console.log("helpers injected");
});
document.getElementsByTagName("head")[0].appendChild(scriptTag);
});
});
Please sponsor or donate to the creator on Boosty or CloudTips.
Thank you for your support and have a great day! 🌄
If you need help getting started or have questions, check out our Discord Community.