jmp 腳本將資料表匯出到 Excel,工作表名稱長度超過 31 個字元你好,
我正在嘗試將一些 JMP 資料表匯出到 Excel(一個 Excel 文件,每個工作表都有單獨的選項卡)。但是,某些資料表名稱的長度超過 31 個字符,Excel 不支援將其用作選項卡名稱。如果我嘗試在 JMP 中使用「匯出」選項,它可以很好地處理長度超過 31 個字元的名稱被截斷的情況。但如果我嘗試在 JMP 腳本中使用“建立 Excel 工作簿 ()”,軟體就會崩潰。
有人能幫我編寫用於匯出到 Excel 的腳本,同時截斷長度超過 Excel 允許的 31 個字元的工作表名稱嗎?
謝謝
大規模客製化視窗回复:將數據表導出到 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 ) );
);回复:將數據表導出到 Excel 的 jmp 腳本,其工作表名稱超過 31 個字符添加到我的問題,假設我有大約 100 個單獨的 jmp 文件一次導出。 我將無法在腳本上分別定義每個文件的名稱。 所以我想讓腳本做的是導出當時打開的所有 jmp 文件,包括名稱很長的文件。
回复:將數據表導出到 Excel 的 jmp 腳本,其工作表名稱超過 31 個字符非常感謝 jthi。 但是,我有 JMP 15,看起來腳本無法運行轉換命令。 請問您知道替代腳本嗎?
回复:將數據表導出到 Excel 的 jmp 腳本,其工作表名稱超過 31 個字符抱歉,腳本由 jthi 編寫。
回复:將數據表導出到 Excel 的 jmp 腳本,其工作表名稱超過 31 個字符嗨 DD1,
首先,感謝 tdhi 提供的腳本。如果您不介意分享,請將崩潰的腳本提交給 JMP 技術支持,網址為支持@jmp.com我們將嘗試修復未來版本的崩潰行為。
布賴恩·科科倫
JMP開發
回复:將數據表導出到 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);