如何使用 ONLYOFFICE 宏,将编号列表转换为表格

2025年02月12日作者:Mona

在处理文档时,我们经常需要将编号列表转换为表格以提高可读性。手动执行此任务可能非常耗时。好在 ONLYOFFICE 宏可以帮助您自动执行重复任务。在这篇文章中,我们将分步演示如何开发 ONLYOFFICE 宏,无缝地将编号列表转换为结构化表格。

如何使用 ONLYOFFICE 宏,将编号列表转换为表格

创建

检索文档和编号段落

宏首先会访问活动文档并检索包含编号的所有段落:

const oDocument = Api.GetDocument();
const paragraphs = oDocument.GetAllNumberedParagraphs();
  • Api.GetDocument() 检索当前打开的文档
  • oDocument.GetAllNumberedParagraphs() 收集所有使用编号样式的段落

将编号项目组织到行中

该脚本遍历每个编号段落并将它们排序到表格行中:

let tableData = [];
let currentRow = [];

for (let i = 0; i < paragraphs.length; i++) {
    let level = paragraphs[i].GetNumbering().GetLevelIndex();
    let text = paragraphs[i].GetText().trim();

    if (level === 0) {
        if (currentRow.length > 0) {
            tableData.push(currentRow);
        }
        currentRow = [text];
    } else if (level === 1 && currentRow.length > 0) {
        currentRow.push(text);
    }
}

if (currentRow.length > 0) {
    tableData.push(currentRow);
}
  • 该脚本循环遍历所有段落并检查其编号级别
  • 0 级项目开始新行,而 1 级项目则作为列附加到当前行
  • 处理后,所有收集的行都存储在 tableData

确定表格尺寸

在创建表格之前,宏会确定所需的列数。脚本通过查找 tableData 中最长的行来计算 maxColumns。这可确保表具有足够的列来正确容纳所有项目:

let maxColumns = 0;
for (let j = 0; j < tableData.length; j++) {
    if (tableData[j].length > maxColumns) {
        maxColumns = tableData[j].length;
    }
}

创建并填充表

现在我们已经组织好了数据,宏会创建一个表并插入提取的内容:

let table = Api.CreateTable(maxColumns, tableData.length);
oDocument.Push(table);

for (let row = 0; row < tableData.length; row++) {
    for (let col = 0; col < tableData[row].length; col++) {
        table
            .GetCell(row, col)
            .GetContent()
            .GetElement(0)
            .AddText(tableData[row][col]);
    }
}
  • Api.CreateTable(maxColumns, tableData.length) 创建具有所需尺寸的表格
  • 该脚本循环遍历 tableData 并将相应的文本插入到每个单元格中

错误处理

为了确保顺利执行,使用 try…catch 块来捕获和记录错误。如果发生错误,它将记录在控制台中,帮助用户调试问题:

try {
    // Code execution
} catch (error) {
    console.log("Error: " + error.message);
}

现在让我们在 Youtube 看看宏的运行效果:

我们希望这个宏能帮助您简化工作中的重复任务。ONLYOFFICE 宏旨在简化您的工作并提高效率。我们鼓励您探索我们广泛的 API 库并创建适合您需求的自定义宏。如果您有任何想法或建议,请随时与我们联系。我们始终欢迎新想法和合作!祝您探索好运!

创建免费的 ONLYOFFICE 账户

在线查看并协作编辑文本文档、电子表格、幻灯片、表单和 PDF 文件。