jmp 脚本将数据表导出到 Excel,工作表名称长度超过 31 个字符你好,
我正在尝试将一些 JMP 数据表导出到 Excel(一个 Excel 文件,每个工作表都有单独的选项卡)。但是,一些数据表名称超过 31 个字符,Excel 不支持将其作为选项卡名称。如果我尝试在 JMP 中使用“导出”选项,它可以很好地处理长度超过 31 个字符的名称截断。但如果我尝试在 JMP 脚本中使用“创建 Excel 工作簿 ()”,软件就会崩溃。
有人能帮我编写一个脚本,用于导出到 Excel,同时截断长度超过 Excel 允许的 31 个字符的工作表名称吗?
谢谢
大规模定制视窗回复:用于将数据表导出到 Excel 的 jmp 脚本,其表名长度超过 31 个字符您可以使用 Substr 获取字符串的一部分,使用 dt_ref << get name 获取数据表的名称。 下面是可以帮助您入门的示例(由于使用了 Transform Each,因此需要 JMP16):
<BR />Names Default To Here(1);
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
dt2 = Open("$SAMPLE_DATA/Abrasion.jmp");
dt1 << Set Name("veryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongname");
dt2 << Set Name("notsolongname");
dt_list = {dt1, dt2};
dt_names = Transform Each({dt_ref}, dt_list, Substr(dt_ref << get name, 1, 31));
Show(dt_names);
Create Excel Workbook("$TEMP/MyWorkbook.xlsx", dt_list, dt_names);
Close(dt1, no save);
Close(dt2, no save);回复:用于将数据表导出到 Excel 的 jmp 脚本,其表名长度超过 31 个字符嗨,DD1,
首先,感谢 tdhi 提供的脚本。如果您不介意分享,请将崩溃的脚本提交给 JMP 技术支持,网址为support@jmp.com我们将尝试在未来的版本中修复崩溃行为。
布莱恩·科科伦
JMP开发
回复:用于将数据表导出到 Excel 的 jmp 脚本,其表名长度超过 31 个字符抱歉,jthi 编写了脚本。
回复:用于将数据表导出到 Excel 的 jmp 脚本,其表名长度超过 31 个字符非常感谢 jthi。 但是,我有 JMP 15,看起来脚本无法运行 Transform 命令。 请问您知道替代脚本吗?
回复:用于将数据表导出到 Excel 的 jmp 脚本,其表名长度超过 31 个字符为了补充我的问题,假设我有大约 100 个单独的 jmp 文件要一次导出。 我将无法在脚本上分别定义每个文件的名称。 所以我希望脚本做的是导出当时打开的所有 jmp 文件,包括名称很长的文件。
回复:用于将数据表导出到 Excel 的 jmp 脚本,其表名长度超过 31 个字符TransformEach 可以替换为 for 循环,类似这样
// dt_names = Transform Each({dt_ref}, dt_list, Substr(dt_ref << get name, 1, 31));
// for every dt_ref in dt_list, make a new list using substr...
dt_names = {};
for( i = 1, i <=nitems(dt_list), i += 1,
dt_ref = dt_list[i];
insert into( dt_names, substr( dt_ref << get name, 1, 31 ) );
);