javascript - office.js 将表格插入到 powerpoint
问题描述
我正在尝试使用 office.js 制作 PowerPoint 加载项。该加载项假设从外部源收集数据并将包含数据的表格插入到 PowerPoint 中,但我在将表格插入到 Powerpoint 中时遇到了一些麻烦。似乎 office.js 没有将表格插入 PowerPoint 的功能(仅适用于 Excel 和 Word)。
- 制作插件可以解决在PowerPoint中插入表格的问题,还有其他好的解决方案吗?
- 有人知道 Office.js 是否会在不久的将来支持将表格插入 PowerPoint 吗?
我正在尝试做的代码片段:
function insertTable() {
var table = new Office.TableData();
table.headers = [['Header', 'Header']];
table.rows = [['Entry', 'Entry'], ['Entry', 'Entry'], ['Entry', 'Entry']];
Office.context.document.setSelectedDataAsync(table, {coercionType: Office.CoercionType.Table},
function (asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error.message);
}
});
}
-->“当前主机应用程序不支持枚举。”
解决方案
我不得不将一个旧的 VSTO 插件移植到 Office.js,并且正在努力将图表和表格添加到 PowerPoint,据我所知,没有直接的方法可以做到这一点:
Office.js 插件在浏览器上运行(如果在办公程序中使用 Edge Legacy),所以 JavaScript 的魔法可以拯救。
Office.js 提供了一种将幻灯片从现有演示文稿插入到活动演示文稿的方法。有许多 JavaScript 库支持使用 OpenXML 标准的 PowerPoint 演示文稿。我用过PPTXGenJS
使用这个库,我在内存中创建了一个演示文稿,将其转换为 base64 格式并将其插入到活动演示文稿中,如下所示:
var pres = new PptxGenJS();
var slide = pres.addSlide();
slide.addTable(['Color', 'Value'], ['Red', 1], ['Blue', 2]);
pres.write('base64').then(async function (data) {
await PowerPoint.run(async function (context) {
const selectedSlideID = 256;//await getSelectedSlideID();
context.presentation.insertSlidesFromBase64(data, { formatting: PowerPoint.InsertSlideFormatting.useDestinationTheme, targetSlideId: selectedSlideID + "#" });
await context.sync();
});
});
推荐阅读
- r - 如何计算R中XX^T中的所有元素?
- java - 运行 npm build 时无法访问 vue.js 前端(frontend-maven-plugin 和 spring-boot 后端)
- networking - 如何在 Traceroute 中跟踪 ISP?
- r - 在闪亮的应用程序中将数据帧从外部函数传递到服务器
- azure - 指向 Azure 流量管理器的 Azure CDN 终结点
- javascript - Node.js 模块,函数未正确导出
- delphi - 如何防止程序在全屏触摸屏上运行时被关闭?
- firefox - 无法访问 Firefox 插件中的 urlbar
- java - 使视图覆盖android中的所有其他视图?
- javascript - 每次更新 React 中的输入或文本区域时,onChange 事件处理程序是否会重新呈现组件?