如何在Excel JavaScript API中解析含工作表名称的区域规范并获取Range对象?
如何在Excel JavaScript API中解析含工作表名称的区域规范并获取Range对象?
嘿,刚好我之前折腾过类似的需求,其实你完全不用自己写复杂的解析逻辑——Excel JavaScript API本身就原生支持你列出的所有合法Excel区域规范字符串,直接传参就能拿到对应的Range对象!
先给你划个重点:不管是不带空格的普通工作表名、带空格需要单引号包裹的,还是工作表名里包含感叹号、单引号(用两个单引号转义)的情况,API内部都已经帮你处理好了格式解析。
比如你列出的这些规范,直接用workbook.getRange()方法就能搞定,给你挨个举代码例子:
- 对于普通无特殊字符的工作表名:
// 对应 SheetName!A1 const range1 = await workbook.getRange('SheetName!A1');
- 对于带空格的工作表名(需要单引号包裹):
// 对应 'Sheet Name'!A1 const range2 = await workbook.getRange("'Sheet Name'!A1");
- 对于工作表名里包含感叹号的情况:
// 对应 'Sheet!Name'!A1 const range3 = await workbook.getRange("'Sheet!Name'!A1");
- 对于工作表名里包含单引号的情况(用两个单引号转义):
// 对应 'Sheet''Name'!A1,实际工作表名是 Sheet'Name const range4 = await workbook.getRange("'Sheet''Name'!A1");
- 对于工作表名本身就是带单引号的情况(外层再用单引号包裹):
// 对应 '''Sheet Name'''!A1,实际工作表名是 'Sheet Name' const range5 = await workbook.getRange("'''Sheet Name'''!A1");
- 对于工作表名里同时有单引号和感叹号的复杂情况:
// 对应 'Sheet''!Name'!A1,实际工作表名是 Sheet'!Name const range6 = await workbook.getRange("'Sheet''!Name'!A1");
这里要提醒一下,如果你是在已经获取到的工作表对象上调用getRange(),那可以只传单元格区域(比如"A1"),但如果要跨工作表或者直接用完整规范字符串,直接给workbook.getRange()传参是最省心的方式,API会自动拆分工作表名和单元格区域,帮你定位到正确的位置。
内容来源于stack exchange
相关产品推荐
相关产品推荐

