Excel Javascript API - 检查合并单元格

3

我想查询Excel中的一系列单元格,并知道该范围内是否存在合并单元格。我看到有合并单元格的API和取消合并单元格的API。请问有人知道是否可能仅检查合并单元格吗?


你尝试过什么? 你是否成功查询了一系列单元格? 你是否安装了API? 这是一个关于如何在VBA中执行此操作的指南:https://dev59.com/fmEh5IYBdhLWcg3wvVl4 你需要参考JS API指南 https://dev.office.com/reference/add-ins/excel/application 并查看这些方法和属性是否受支持。 - Nick.Mc
2个回答

2

目前我们没有API可查询合并单元格的状态。 请在UserVoice上记录功能请求,我们将在未来的API规划中考虑它。

-Philip,Office扩展团队的开发人员


0

文档:https://learn.microsoft.com/zh-cn/javascript/api/excel/excel.range?view=excel-js-preview#getMergedAreasOrNullObject__

注意:对于我来说,这仍然是一个WIP,需要进行“isNull”检查,而且我还没有适应生产代码,但这应该是一个很好的起点。如果您需要进一步了解,请查看mergedAreas对象。

以下是我的做法:

async function Get_Merged_Areas_Arr_Of_Objs(context, ws) { //test for Null
    var mergedAreas = ws.getUsedRange(true).getMergedAreasOrNullObject();
    mergedAreas.load(["areas"]);
    await context.sync()

    var Merged_Areas_Arr_Of_Objs = []
    var arrlen = mergedAreas.areas.items.length
    for (var ai = 0; ai < arrlen; ai += 1) {
        var obj = mergedAreas.areas.items[ai]
        var rng_obj = {}
        rng_obj['worksheet'] = obj['address'].split("!")[0]
        rng_obj['rowIndex'] = obj['rowIndex']
        rng_obj['columnIndex'] = obj['columnIndex']
        rng_obj['rowCount'] = obj['rowCount']
        rng_obj['columnCount'] = obj['columnCount']
        Merged_Areas_Arr_Of_Objs.push(rng_obj)
    }
    return Merged_Areas_Arr_Of_Objs
}

var Merged_Areas_Arr_Of_Objs = await Get_Merged_Areas_Arr_Of_Objs(context,ws)
console.log('Merged_Areas_Arr_Of_Objs:')
console.log(Merged_Areas_Arr_Of_Objs)

[object Object],[object Object],[object Object],[object Object]
   [
      0: {
         [functions]: ,
         __proto__: { },
         columnCount: 1,
         columnIndex: 0,
         rowCount: 3,
         rowIndex: 1,
         Symbol()_7.z1gk27bjwa1: undefined,
         Symbol(nodejs.util.inspect.custom)_j.z1gk27bjwa1: undefined,
         worksheet: "Sheet3"
      },
      1: { },
      2: { },
      3: { },
      length: 4
   ]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接