如何更改 JSL 中的列格式或处理 Send Expects Scriptable Object 错误我正在 JSL 脚本中加入 (2) 个表。我遇到的问题是保存新加入的表。有(2)个问题。
第一个问题是 (Test2) 的数据列作为字符/标称进入 JMP,并且需要为数字/连续。当我将 Excel 电子表格列格式更改或创建为数字时,我在 dt3 <<另存为代码行中收到以下错误。
Send Expects Scriptable Object in access or evaluation of 'Send' , dt3 << /*###*/save as("B:\JoinTest1_2.jmp") /*###*/
当我尝试在 JSL 中格式化 JMP 数据表列格式时,我在另存为指令期间遇到了同样的错误。
我已经搜索了几个小时,就是想不通。
这是我的代码。任何帮助将不胜感激。
Names Default To Here( 1 );
dt1 = open("B:\Test1.jmp");
dt2 = Open("B:\Test2.jmp",
Worksheets( "WorkSheet1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
column(dt2,"Column1") << data type(Numeric)<<MODELING type=""></MODELING>回复:如何更改 JSL 中的列格式或处理“发送期望脚本对象”错误我强烈建议您养成访问脚本索引以获取您正在使用的不同函数的描述和示例的习惯。
帮助==>脚本索引
或者只是为了获得描述,一旦您输入函数名称,以“(”开头,您可以将鼠标悬停在函数名称上,它将显示函数的描述
回复:如何更改 JSL 中的列格式或处理“发送期望脚本对象”错误效果非常好,所以列号是正确的语法而不是列名。 呸,我应该能弄明白的。
谢谢你!回复:如何更改 JSL 中的列格式或处理“发送期望脚本对象”错误好的,我偶然发现了一个部分解决方案,dt1 和 dt2 的电子表格都有字符数据和数字数据,尽管这两个 excel 文件在 excel 中都被格式化为“常规”,无论出于何种原因 dt2 表不喜欢这样和迫使我将数字列格式化为“数字”数据。
所以有一个解决方法,但是我想知道为什么脚本在以编程方式更改参数时似乎不起作用。回复:如何更改 JSL 中的列格式或处理“发送期望脚本对象”错误我想我看到了问题。当你指定
column(dt2,"Column1") << data type(Numeric)<<MODELING type=""></MODELING>
JMP 正在寻找一个名为“Column1”的列......是的......Excel 将从 Excel 表中设置列名,因为它在如何读取 Excel 文件的定义中指定
Has Column Headers( 1 )
所以如果要使用列位置改变数据类型等,需要指定
column(dt2,1) << data type(Numeric)<<MODELING type=""></MODELING>
回复:如何更改 JSL 中的列格式或处理“发送期望脚本对象”错误是的,你是对的 dt2 是一个 excel 文件,抱歉,这段代码对我正在处理的实际文件是通用的。
我确实有两列具有相同的标题(示例 ID)。
代码以相同的方式执行,当打开 dt2 时,数据列不是数字/连续的,如果我尝试更改脚本中的列参数,我会得到上面的错误。 JMP如何解释带有列标题的excel数据,是否可以使用列标题中的文本来设置参数?回复:如何更改 JSL 中的列格式或处理“发送期望脚本对象”错误我看到了几个问题。我不确定 dt2 是否正在打开 .jmp 数据表或 Excel 文件。您已指定 dt2 是一个 .jmp 文件,但包含了 Excel 规范。
接下来,“By Matching Columns”代码的正确形式应该是:Column1 = :Column1 ......但是,如果两列都存在于数据表中,那么就不会有问题
我已经添加了几个语句来确保数据表 dt3 在关闭数据表 dt1 和 dt2 之前和之后都存在。
运行代码并查看 JMP 日志打印出的内容
Names Default To Here( 1 );
dt1 = open("B:\Test1.jmp");
dt2 = Open("B:\Test2.jmp", // Is this a JMP table or an Excel..... the .jmp extension seems strange here
Worksheets( "WorkSheet1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
column(dt2,"Column1") << data type(Numeric)<<MODELING type=""></MODELING>