• 首先打开Excel,打开任意一个模板,
  • 以Office Excel 2016为例,
  • 鼠标选中一个单元格(或区域),点击Excel选项卡-公式-定义名称
  • 点击后弹窗如下
  • 设置一个自己记得住的名称,此处设置myArea
  • 点击确定后保存模板,
  • 使用浏览器打开Web端刚才保存的模板,如果已经打开,需要关闭退出后重新打开,
  • 下面以谷歌浏览器(chrome)为例,按下F12(绝大部分浏览器的快捷键)打开开发者工具
  • 首次打开界面可能是英文,修改到中文操作如下:
  • 点击⚙️图标
  • 找到图中选项,修改为chinese-中文,无需保存,关闭对话框,再次F12即可生效。
  • 切换到控制台,输入下面代码后回车,若无报错即可开始,在控制台输入的代码会在浏览器标签页关闭时清除。
    MWE.Obj
  • 正常情况输出为 ctor {}
  • 获取当前模板对象(打开多个标签页时,获取到的是激活模板)
    thisRep = MWE.Obj.repMe()
  • 获取自定义区域
    thisRep.wb.getCustomName('myArea')

    输出:

    {
    "Cj": "myArea",  //自定义名称
    "Uu": 0,
    "Vu": 0,
    "Lf": {
    "type": 1,
    "isFullRow": false,
    "isFullColumn": false,
    "row": 6, // 区域起始行标,比Excel中少1
    "column": 8, // 区域起始列标,比Excel中少1
    "endRow": 6, // 区域结束行标,比Excel中少1,定义为区域时才会有,单个单元格无效
    "endColumn": 9, // 区域结束列标,比Excel中少1,定义为区域时才会有,单个单元格无效
    "rowRelative": false,
    "columnRelative": false,
    "endRowRelative": false,
    "endColumnRelative": false
    }
    }
  • 下面是一个封装函数,根据传入的定义名称返回实际内容

    注,定义名称要在第一个sheet,且模板填报时激活的也是第一个sheet才生效

function getCustomAreaValue(aName) {
    let thisRep = MWE.Obj.repMe()
    let area = thisRep.wb.getCustomName(aName)
    if (!area) {
        return ""
    }
    let sheet = MWE.Obj.getActiveSheet()
    return sheet.getValue(area.Lf.row, area.Lf.column)
}
  • 调用示例
    getCustomAreaValue('myArea')
  • 设置指定区域内容
    function setCustomAreaValue(aName, value) {
    let thisRep = MWE.Obj.repMe()
    let area = thisRep.wb.getCustomName(aName)
    if (!area) {
        return ""
    }
    let sheet = MWE.Obj.getActiveSheet()
    return sheet.setValue(area.Lf.row, area.Lf.column, value)
    }
  • 调用示例
    setCustomAreaValue('myArea','abc123')
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。