【发布时间】:2020-06-16 15:31:37
【问题描述】:
我们使用 officejs 开发了 Excel 插件,以下是场景,因此请您提供帮助。
Dekstop 版本
- 当我们单击任何自定义功能区命令并且一旦数据绑定到 Excel 中,就会在 Excel 中打开不想自动打开的新选项卡“表格设计”。
- 请建议禁用上述方案。
请查找随附的屏幕截图。
在线版
对于在线 Excel,它不会自动打开新标签“表格设计”,这也是在桌面版本中工作所需的场景。
使用的示例代码:
var dtTable = new Office.TableData();
dtTable.headers = ['Id', 'Name', 'DOB', 'year'];
for (var i = 0; i < data.length; i++) {
dtTable.rows.push([data[i].ID, data[i].Name, data[i].DOB, data[i].year]);
}
Office.context.document.setSelectedDataAsync(dtTable, { coercionType: Office.CoercionType.Table }, function (asyncResult) {
if (asyncResult.status == Office.AsyncResultStatus.Failed) {
} else {
}
});
根据建议的答案进行了尝试:
Office.context.document.setSelectedDataAsync(dtTable, { coercionType: Office.CoercionType.Table }, function (asyncResult) {
if (asyncResult.status == Office.AsyncResultStatus.Failed) {
} else {
Office.context.document.goToByIdAsync("Sheet1", Office.GoToType.NamedItem, function (asyncResult) {
if (asyncResult.status == Office.AsyncResultStatus.Failed) {
// showMessage("Action failed with error: " + asyncResult.error.message);
}
else {
// showMessage("Navigation successful");
}
});
}
});
第二次:
Office.context.document.setSelectedDataAsync(dtTable, { coercionType: Office.CoercionType.Table }, function (asyncResult) {
if (asyncResult.status == Office.AsyncResultStatus.Failed) {
} else {
}
});
Office.context.document.goToByIdAsync("Sheet1", Office.GoToType.NamedItem, function (asyncResult) {
if (asyncResult.status == Office.AsyncResultStatus.Failed) {
// showMessage("Action failed with error: " + asyncResult.error.message);
}
else {
// showMessage("Navigation successful");
}
});
样品于 2020 年 6 月 23 日试用,并附上数值的屏幕截图
async function getData(event: any) {
await BindExcel();
event.completed();
}
async function BindExcel() { //testing for Table Desing tab
Excel.run(async context => {
var table = new Office.TableData();
table.headers = [['Header', 'Header2']];
table.rows = [['Entry11', 'Entry12'], ['Entry21', 'Entry22'], ['Entry31', 'Entry33']];
Office.context.document.setSelectedDataAsync(table, {coercionType: Office.CoercionType.Table},
function (asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error.message);
}
});
Office.context.document.goToByIdAsync("Sheet1", Office.GoToType.NamedItem);
return context.sync();
})
}
【问题讨论】:
-
请补充一些细节。这些自定义功能区命令是您的加载项的一部分吗?他们是否将数据导入电子表格?他们会将数据导入表格吗?
-
@rick.. 是的,它是自定义功能功能区命令的一部分......
-
@rick.. 任何更新请...
-
我不知道您所说的“自定义功能功能区命令”是什么意思。自定义功能不是从功能区命令启动的。功能区命令是否将数据导入电子表格?他们是否将数据导入表格? ——
-
@rick .. 抱歉拼写错误...试图确认这些是在 excel 中实现的自定义功能区命令的一部分...。当我单击任何一个自定义功能区命令时,一旦导入数据进入电子表格,然后“表格设计”出现在之前的屏幕截图中......
标签: office-js