- 首先打开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')
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。