你好。 我注意到,如果我尝试使用脚本打开 Excel 文件,如果“打开”命令源自按钮框,则会出现“Excel 导入向导”,但如果“打开”命令位于脚本的顶层,则不会出现。 根据记录,我不希望向导出现在这种情况下。 有人熟悉这种行为吗?如果是,我可以修复它吗?
例如,我有一个脚本,用户选择一个 Excel 文件,然后将其打开。 在这种情况下,Excel 文件作为 JMP 表打开不会出现问题。 但是,如果我将打开 Excel 文件的命令放在按钮框中,则会出现 Excel 向导。 即使在两种情况下使用完全相同的选项。 下面的脚本使用附加的 xlsx 文件对此进行了演示:
Names Default to Here(1);
//Get location of file:
path = Pick File("Select xlsx Table...",,
{"Excel|xlsx"}, 1,
0
);
If(path == "", Stop());
//Expression to open file:
open_exp = Expr(
Open(path,
Worksheets("Sheet1"),
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(0),
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(1),
Column Separator String("-")
)
);
);
//Attempt to open file...works as intended (no Import Wizard)
open_exp;
//Attempt to open file via a button...always results in the Import Wizard.
win = New Window("Temp",
ButtonBox("Open xlsx",
open_exp
)
);正如您所看到的,这两种方法都在同一文件上使用完全相同的命令和完全相同的选项,但我得到了两种不同的行为。
进一步值得注意的是,当通过按钮框打开 xlsx 文件时,打开命令设置似乎被忽略。 也就是说,如果我更改“标题中的行数”、“标题从行开始”、“数据从行开始”等选项,则使用的第一种方法将尊重这些新设置。 然而,使用导入向导的第二种“按钮框”方法似乎总是恢复为默认设置。
根据记录,我不想修改我的首选项,以便 JMP 永远不会使用 Excel 向导。 我只是不想在这种情况下使用它,并且我不能要求此应用程序的其他用户根据他们的喜好制作相同的模组。
我的具体情况:
JMP 专业版 15.2.1
Mac 操作系统 Catalina 10.15.7
Excel:版本 16.49
希望有人能帮忙。 谢谢!
温迪,
这方面有更新吗?
我有一个脚本可以在我的显示框中设置一些字体,但事实证明组织中的某些计算机安装的字体非常少。
所以我的用户会收到很多弹出窗口,显示“未知字体”。 我没有将所有内容恢复为默认字体,而是尝试将其包装在 Try() 块中,但这没有帮助。
Craige 建议使用 Batch Interactive(1),但它似乎也不起作用,如下面的简单示例所示:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = dt << Bivariate( Y( :height ), X( :weight ) );
rbiv = biv << Report;
For Each({box, index}, (rbiv << XPath( "//AxisBox/MouseBox/DropBox/TextEditBox" )),
Batch Interactive(1);
Try(box << Set Font( "Agency FF", 13 ));
Batch Interactive(0);
);知道为什么 Batch Interactive(1) 在这种情况下不起作用以及如何处理丢失的字体吗?
你好, @Craige_Hales 。
Batch Interactive() 没有记录,因为它被认为是实验性的。不过,已向 JMP 开发团队提出建议,将该功能提升为全面支持。我会将这个讨论添加到该请求中。典型的用例是作为从交互操作(例如单击按钮)执行的脚本的一部分。
“Excel 向导”选项的文档位于以下位置:
我很乐意传递一个请求,将其包含在用于打开 Excel 数据的脚本索引示例中。
看忽略或禁用模态 JMP 警报用于批量交互功能。 脚本的按钮驱动版本知道您必须是交互式的,并且有助于将您置于交互式向导中。
还,绕过脚本中的 Excel 导入向导有一个更好的答案。
最后,如果您遇到相反的问题并需要向导,请参阅强制 Open() 以使用 Excel 向导而不更改首选项
@Wendy_Murphrey这两个似乎很难在文档中发现。
编辑:链接到SetFont 的奇怪变化