我在带有桥的ExtendScript中工作,以将标签附加到Excel文档中的文档。我正在使用js-xlsx库解析excel文档。我正在运行一个for循环来解析各个单元格并获取值,当我从命令行运行它时,它可以完美地工作。但是,当我在ExtendScript中运行它时,出现了一个例外,即keys()。forEach不是一个函数。 ExtendScript是否出于某些原因而不同地读取循环?我很难弄清楚这一点。这是给我带来麻烦的那一行:
var range = {s:{c:0, r:0}, e:{c:1,r:30}};
for (var R = range.s.r; R <= range.e.r; ++R) {
for (var C = range.s.c; C <= range.e.c; ++C) {
var cell_address = xls.utils.encode_cell({c:C, r:R});
最佳答案
Extendscript作为一种语言,停留在ECMAScript 3中-因此它本身并不了解Object.keys()
或Array.forEach()
。甚至没有JSON
。
可以在After Effects scripting guide第3页中找到对此的官方提及:
After Effects脚本使用Adobe ExtendScript语言,这是一种
一些Adobe应用程序使用的JavaScript扩展形式,
包括Photoshop,Illustrator和InDesign。扩展脚本
根据ECMA-262实现JavaScript语言
规格。 After Effects脚本引擎支持第三个
ECMA-262标准的版本,包括其符号和词汇
约定,类型,对象,表达式和语句。扩展脚本
还实现了E4X ECMA-357规范,该规范定义了访问权限
转换为XML格式的数据。
以上内容在PS脚本指南中找不到,也没有参考。
如果要使用ES5功能,请包括垫片或尝试extendscriptr。 Extendscriptr是一个脚本社区项目(无需Adobe参与),该项目应允许您编写ES5 / ES6代码,然后将其转换为ES3。
关于javascript - ExtendScript中的For循环-keys()。forEach不是函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38508213/