使用腳本將數據表導出到 Excel您好,我正在嘗試學習如何使用腳本和一些自動化功能將數據表導出到 Excel。
我正在使用 save("") 打開“JMP 文件另存為”窗口,提示我保存文件。 我希望將“保存類型”設置為 *.xls 而不是 *.jmp,這樣我就不必每次都更改它。 我還想設置它選擇用於保存文件的默認文件夾。 這些可以在 scipting 命令中完成嗎? 我是新用戶,正在尋找一個簡單的解決方案。 感謝您的任何提示! 〜香農
回复:使用腳本將數據表導出到 Excel太棒了! 但是如何詢問用戶是否替換現有文件呢?
回复:使用腳本將數據表導出到 Excel你好,
我遇到了許多 excel 文件的問題,這些文件是很久以前創建的,包含大量數據,我假設這些文件是早期版本創建的。 2007 年或 2003 年。 奇怪的是,該文件在 95% 的機器上不起作用,它會因添加或刪除列而崩潰,並出現錯誤 1000 和 Execel.exe。
我嘗試了兩種方法,效果很好,但這不是我需要的解決方案。 這些文件包含 freezpan,當我解凍時效果很好,或者我將工作表複製到新工作表,那麼即使啟用了 freezpan,它也能正常工作。
如何在數百個文件中解決此問題? 我被這個問題困擾了。
謝謝Adv。
問候
費薩爾
回复:使用腳本將數據表導出到 Excel像這樣的東西會去掉 .jmp 擴展名並附加 .xlsx。 如果您已在過濾器中選擇了 .xlsx 文件,它將不執行任何操作並覆蓋該文件。 請注意,JMP 擅長保存 XLSX,但確實不太擅長保存 XLS。
dt = 當前數據表();
filepath = pickFile("選擇要保存的文件", "c:\", {"Excel 文件|xlsx"}, 1, 1);
pos = 包含(文件路徑,“.xlsx”);
if (pos == 0, filepath = Left(filepath, pos-1); filepath = filepath || ".xlsx");
dt << 另存為(文件路徑,Excel 文件);
布賴恩·科科倫
JMP開發
回复:使用腳本將數據表導出到 Excel@香農K ,
是的,你是對的。 如果您選擇一個已經存在的文件,則包含擴展名。 但是,如果它是新文件,則必須包含擴展名。
@Craige_Hales也許可以進一步發表評論?
回复:使用腳本將數據表導出到 Excel感謝您的幫助。 我包含了您建議的保存代碼,但出現錯誤:“無法保存文件。 未知數據目標。”
我一直在嘗試解決該錯誤,但沒有成功。 當我檢查 SaveFilePath 的輸出時,它看起來像這樣:“/C:/Users/jmp/name”。 我對這個問題的最佳猜測是保存功能沒有將“.xlsx”添加到文件名中。
(我使用的是 Windows,但“/C: ...”似乎不是問題。)
我是否正確識別了錯誤? 關於如何解決這個問題有什麼想法嗎?
謝謝你!
香農
回复:使用腳本將數據表導出到 Excel你好@香農K ,
因此,“選擇文件”對話框僅負責保護您想要的路徑和文件名。 所以在你的例子中:
比方說:
path = "$DOCUMENTS" // this is shorthand for your "My Documents" folder<BR />
filtereddata = sorteddt << Subset(
(Selected Rows),
Columns(:YEARX, :PSU, :CASEID, :RATWGT, :VEHNO, :OCCNO, :DVTOTAL, :ROLLOVER, :GAD1, :PDOF1, :DOF1, :BODYTYPE, :AGE, :ROLE, :SEATPOS),
Output Table Name(filename)
);
SaveFilePath = Pick File(
"Save Filtered Data",
path,
{"Excel Files|xlsx;xls", "JMP Datatables|jmp", "Text Files|txt;csv;dat", "All Files|*"},
1,
saveFlag = 1
);
選擇文件夾並為文件選擇名稱後,變量保存文件路徑將以字符串形式包含此信息。
然後您將執行以下操作:
SaveFilePath );filtereddata << Save(
回复:使用腳本將數據表導出到 Excel這太棒了,謝謝。
但我仍然有 1 個問題。 我如何告訴它我正在保存哪個文件? 我正在輸入文件名將其另存為,但我的文件夾中沒有顯示任何內容。 我想知道是不是因為沒有什麼可保存的?
我正在創建一個數據表,然後運行您建議的 SafeFileWindow 代碼。 如果我錯過了一些簡單的事情,我深表歉意。 我是新來的! (此外,由於某種原因,保存文件窗口出現在數據表出現之前。 換句話說,運行此代碼後,保存文件窗口不是活動窗口。)
感謝您的幫助。
這是我的代碼的一部分:
過濾數據=sorteddt<<子集(
(選定的行),
列(:YEARX、:PSU、:CASEID、:RATWGT、:VEHNO、:OCCNO、:DVTOTAL、:ROLLOVER、:GAD1、:PDOF1、:DOF1、:BODYTYPE、:AGE、:ROLE、:SEATPOS)、
輸出表名(文件名)
);
保存文件窗口 = 選擇文件(
“保存過濾後的數據”,
小路,
{"Excel 文件|xlsx;xls"、"JMP 數據表|jmp"、"文本文件|txt;csv;dat"、"所有文件|*"},
1、
保存標誌 = 1
);
回复:使用腳本將數據表導出到 Excel@香農K
試試這個,將“<默認文件夾路徑>”替換為您希望最初顯示的文件夾路徑::
SaveFileWindow = Pick File(
"Save File",
"<DEFAULT folder="" path="">",
{"Excel Files|xlsx;xls", "JMP Datatables|jmp", "Text Files|txt;csv;dat", "All Files|*"},
1,
saveFlag = 1
);
</DEFAULT>
您可以在以下位置閱讀有關“選擇文件”功能的更多信息: http://www.jmp.com/support/help/13/Select_a_Directory_or_File.shtml