office-js - 如何在office js中添加多个选定的单元格注释?
问题描述
我正在使用 office js,但无法添加多个选定的单元格注释。我已经阅读了 office js 文档,但找不到我想要的类似解决方案。如果我在代码下方选择了一个单元格,则可以正常工作。
await Excel.run(async (context) => {
const range = context.workbook.getSelectedRange();
const comment = context.workbook.comments.getItemByCell(range);
comment.content = "add comment";
await context.sync();
});
我是 office js 的初学者,下面的代码获取地址 Sheet1!I4:K4.so 我是否手动循环添加了 I4、J4、K4 之类的注释,但这不是更好的方法。如果我错了,请纠正我,谢谢。
try {
await Excel.run(async (context) => {
try {
var range = context.workbook.getSelectedRange();
range.load(["address"]);
return context.sync().then(function () {
const addString = range.address;
//Sheet1!I4:K4
});
} catch (error) {
// eslint-disable-next-line no-empty
if (error.code == Excel.ErrorCodes.itemNotFound) {
} else {
throw error;
}
}
});
} catch (error) {
ErrorProvider.getInstance().notify(JSON.stringify(error));
}
解决方案
我认为这可以满足您的要求。请看下面的代码:
async function run() {
await Excel.run(async (context) => {
let wb = context.workbook
let ws = wb.worksheets.getActiveWorksheet()
let rang = wb.getSelectedRange()
rang.load("rowCount, columnCount")
await context.sync()
let rangRowCount = rang.rowCount
let rangColCount = rang.columnCount
let rangeAddresses = []
for (let i = 0; i < rangRowCount; i++) {
{
for (let j = 0; j < rangColCount; j++)
{
let newRang = rang.getCell(i,j)
rangeAddresses.push(newRang.load("address"))
}
}
}
await context.sync()
rangeAddresses.forEach(e => {
wb.comments.add(e.address, "This is a comment")
})
})
}
推荐阅读
- python - 直接从 itertools 函数打印?
- c - 为什么帧指针保存在main函数的开头
- regex - 匹配前缀但排除 (?<=PREFIX) 正则表达式在 Regex Tester 中有效,但在 Excel VBA 中无效
- python - 有没有一种简单的方法可以在单个程序中从 API 调用中获取不同类型的数据?
- python - 基于primarykey从pandas dataframe upsert到oracle表
- java - 如何对另一个 sparql 查询的结果运行 sparql 查询?(不允许子查询)
- python-3.x - 使用 biopython 在 genbank 文件中添加特征序列
- flutter - 如何设置输入字段的高度?
- excel - 从数据列表中将 Sheet1 中的数据提取到 Sheet2 中
- r - 如何使用 plotly 绘制“错误圈”