在使用电子表格时,经常会遇到需要在工作表的单元格中搜索特定单词的情况,同时还可能需要修改或删除实例。在本文中,我们将开发一个宏,用于搜索和删除电子表格中出现的特定单词。

构建宏
const oWorksheet = Api.GetActiveSheet(); const oRange = oWorksheet.GetSelection(); const wordToCheck = "apple";
首先,我们在 oWorksheet 和 oRange 变量中获取活动工作表和选区,并设置要在整个电子表格中搜索的单词。
let index = 0;
oRange.ForEach(function (range) {
index++;
const cellValue = oWorksheet.GetRange(range).GetValue();
const contains = containsWord(cellValue, wordToCheck);接下来,我们使用一个 foreach 循环遍历范围,获取选区中每个单元格的值,并将其传递给 containsWord 方法。containsWord() 方法需要两个参数:单元格的值和我们要搜索的单词。
if (contains === 1) {
//Uncomment the console.log() to view deleted cells in the browser's console.
// console.log(`The sentence ${cellValue} contained the word you wanted to delete, and was deleted.`);
oWorksheet.GetRange(range).Clear();
} else if (contains === true) {
oWorksheet
.GetRange(range)
.SetFillColor(Api.CreateColorFromRGB(204, 0, 0));
}完成 containsWord() 方法后,将根据返回值决定后续操作。如果返回值为 1,表示完全匹配,则清除单元格。另一方面,如果该方法返回值为 true,表示在附加字符中存在目标单词,则单元格将高亮显示。
function containsWord(sentence, word) {
const trimmedSentence = sentence.trim();
const trimmedWord = word.trim();
if (trimmedSentence === trimmedWord) {
return 1;
} else {
const regex = new RegExp("\\b" + trimmedWord + "\\b", "i");
return regex.test(trimmedSentence);
}
}containsWord() 方法是本宏中的主要计算功能。它接受单元格值和要搜索的单词,并对其进行修剪以消除任何额外的空格。如果单元格值与目标单词精确匹配,且没有附加内容,则返回 1。但是,如果单元格值包含目标单词和其他字符,例如句子中的字符,则返回 true。
完整的宏代码
(function () {
const oWorksheet = Api.GetActiveSheet();
const oRange = oWorksheet.GetSelection();
const wordToCheck = "apple";
let index = 0;
oRange.ForEach(function (range) {
index++;
const cellValue = oWorksheet.GetRange(range).GetValue();
const contains = containsWord(cellValue, wordToCheck);
if (contains === 1) {
//Uncomment the console.log() to view deleted cells in the browser's console.
// console.log(`The sentence ${cellValue} contained the word you wanted to delete, and was deleted. `);
oWorksheet.GetRange(range).Clear();
} else if (contains === true) {
oWorksheet
.GetRange(range)
.SetFillColor(Api.CreateColorFromRGB(204, 0, 0));
}
});
function containsWord(sentence, word) {
const trimmedSentence = sentence.trim();
const trimmedWord = word.trim();
if (trimmedSentence === trimmedWord) {
return 1;
} else {
const regex = new RegExp("\\b" + trimmedWord + "\\b", "i");
return regex.test(trimmedSentence);
}
}
})();让我们看看我们的宏的表现如何。
这就是电子表格单词删除宏的作用!这款灵巧的工具可以毫不费力地删除特定的单词,让你的电子表格编辑工作变得轻而易举,节省时间,增强电子表格工作流程。祝你编辑愉快
不要错过利用ONLYOFFICE API强大功能的机会。我们广泛的API方法库是您将想法转化为现实的关键。如果您有任何问题或创新概念,我们鼓励您与我们分享。我们非常重视您的意见,也非常期待与您合作的可能性。祝您在探索过程中一切顺利!

渝公网安备50010702505508