excel-online - 如何删除工作表(如果存在)并使用 Office 脚本创建具有相同名称的新工作表
问题描述
我有一个脚本,可以复制现有工作表并在这个新工作表中生成一个名为Lists
.
寻找一种在脚本再次运行时删除新工作表的方法,但我不断收到“工作表激活:请求的资源不存在”错误selectedSheet.activate();
let selectedSheet = workbook.getWorksheets()[0];
selectedSheet.getAutoFilter().remove();
// Duplicate worksheet.
let itemsName = "Lists";
let sheetItem = workbook.getWorksheet(itemsName);
// If `null` wasn't returned, then there's already a worksheet with the same name.
if (sheetItem) {
console.log(`Worksheet ${itemsName} already exists. Deleting...`);
// Delete the sheet.
sheetItem.delete();
} else {
let selectedSheet = workbook.getWorksheets()[0];
}
selectedSheet.activate();
let itemsSheet = selectedSheet.copy(ExcelScripWorksheetPositionType.before, selectedSheet);
itemsSheet.setName("Lists");
itemsSheet.activate();
解决方案
我建议使用可选的链接运算符 (?.)。
function main(workbook: ExcelScript.Workbook)
{
const itemsName = "Lists";
workbook.getWorksheet(itemsName)?.delete();
const selectedSheet = workbook.getFirstWorksheet();
const itemsSheet = selectedSheet.copy(ExcelScript.WorksheetPositionType.before, selectedSheet);
itemsSheet.setName(itemsName);
itemsSheet.activate();
}
请参考以下链接。
推荐阅读
- dart - 如何使属性只能从 Dart 中的抽象类中读取?
- java - 在mysql中加入两个表并返回多行(第一个表包含一行,第二个表包含多行)
- android-studio - 错误消息: > 无法使用 BuildSessionServices.createFileHasher() 创建 FileHasher 类型的服务。> java.io.FileNotFoundException
- javascript - 对 HTML 元素进行分组并创建一个新元素
- vba - 使用VBA修改Word数据
- regex - 在 tar 存档中搜索多个路径
- c++ - 正方体问题:架构 x86_64 的未定义符号
- python-3.x - 在这个嵌套列表中,将 hello 替换为 goodbye
- c - 练习 1-6。验证表达式 getchar() != EOF 是 0 还是 1
- javascript - 如何通过反应使 api 调用动态化?