繞過腳本中的 Excel 匯入精靈當按下應用程式視窗的「確定」按鈕時,我嘗試從 JMP 應用程式中開啟 .xslx 檔案。 我的問題是我發現很難繞過 Excel 精靈視窗並直接開啟。
我希望使用我在 Open() 語句中指定的 Excel 選項在 JMP 中開啟檔案。 為了讓我的 Open() 語句選項正確,我手動開啟檔案並從表格的來源腳本複製 Open() 語句,所以我認為所有這些選項都是正確的。 這是一個多工作表 Excel 文件,我只需要 JMP 中的一個工作表,因此我的 Open() 狀態如下所示:
Open(
"~/Desktop/test.xlsx",
Worksheets( "Data" ),
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( "-" )
)
)
奇怪的是,當我在獨立腳本中執行此 open 語句時,一切都按照我的意願發生:檔案直接打開,而沒有彈出 Excel 精靈窗格。
但是,當我將相同的 Open() 語句作為我正在建立的 JMP 應用程式的腳本的一部分包含時,我似乎無法阻止精靈窗格的開啟。 (當我單擊應用程式的使用者輸入視窗的「確定」按鈕時,將呼叫 Open() 語句。)
有什麼想法為什麼會發生這種情況以及如何阻止它嗎?
回覆:繞過腳本中的 Excel 匯入精靈@mjoner - 是的,至少在 JMP 16.0 中仍然需要此解決方法。
回覆:繞過腳本中的 Excel 匯入精靈@danschikore此處引用的過程仍然是實現此目的的唯一方法嗎? 是否有任何想法消除在這個雜亂中編寫以獲得所需的腳本行為的需要?
回覆:繞過腳本中的 Excel 匯入精靈擔,
感謝您的跟進。 我最終嘗試了其他所有方法並最終使用@多發性硬化症將 open 語句嵌入 Include() 檔案中的解決方案。 這解釋了發生了什麼,並提供了不同的解決方法。
約翰回覆:繞過腳本中的 Excel 匯入精靈事實證明,Windows 和 Mac 上的行為有所不同,可能是由於讀取 Excel 檔案的支援庫存在差異。在 Mac 上,直接呼叫的 Open() 腳本將按預期開啟文件,但透過點擊按鈕呼叫的 Open() 呼叫將開啟 Excel 精靈。
解決方法是@多發性硬化症提供強制 JMP 進入“批次”模式,這會將邏輯更改為直接運行腳本而不是透過按鈕運行。另一種不需要中間檔案的方法是將腳本嵌入到 ScriptBox 中並在該方塊中呼叫 <
// One way to force JMP into batch mode is to embed the script in a ScriptBox
// and invoke <<RUN on="" the="" script="" box.="" new="" window=""></RUN>
回覆:繞過腳本中的 Excel 匯入精靈丹,感謝您的回覆。 我會嘗試一下,然後將導致我的問題的應用程式單獨發送給您。 給我一點。 約翰回覆:繞過腳本中的 Excel 匯入精靈我嘗試使用隨附的 JMP 應用程式透過 JMP 13/14/15 重現此問題。按鈕按下腳本如下所示,它可以在我迄今為止嘗試過的所有版本中正確開啟表格。這個例子對你有用嗎?這與您正在開發的應用程式有何不同?您使用的是哪個版本的 JMP?
Button1Press = Function( {this},
// This function is called when the button is pressed
Open(
"$SAMPLE_IMPORT_DATA\VA Lung Cancer.xls",
Worksheets( "VA Lung Cancer" ),
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( "-" )
)
)
);
回覆:繞過腳本中的 Excel 匯入精靈謝謝,女士。這對將來會有幫助。 同時,我已經針對我的情況找到了不同的解決方法,但下次將其放入工具箱中是很好的選擇。
《腳本指南》(第 333 頁)中有一節討論了 Open() 函數的上下文敏感性並將其與 Excel 精靈聯繫起來,但我發現它不是很清楚。 我不禁認為這裡討論的行為要么是 Open() 實作中的一個缺點(?bug),要么需要更多文件。
例如,最好的一件事是 Open() 中可以明確選擇是否不使用嚮導,而不是關閉首選項。 只是我的兩分錢。
回覆:繞過腳本中的 Excel 匯入精靈我也經歷過這種情況並找到了一種解決方法。 儲存打開()命令作為單獨的腳本並使用包括()運行程式碼。
// Create a jsl file with the Open() command
f = Save Text File(
"~/Desktop/test.jsl",
Char(
Name Expr(
Open(
"~/Desktop/test.xlsx",
Worksheets( "Data" ),
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( "-" )
)
)
)
)
);
// Invoke Open() via user input
nw = New Window( "open test", Button Box( "OK", Include( f ) ) );回覆:繞過腳本中的 Excel 匯入精靈如果有人對此感到困惑,這裡有另一種方法: 1. 取得並儲存使用者對 Excel 開啟方法的首選項; 2.改成你所需要的; 3.打開文件; 4. 將設定更改回原來的設定
例如
OriginalPref = 取得首選項( Excel 開啟方法 );
設定首選項(Excel 開啟方法(「開啟所有工作表」));
myPath = 選擇檔案(....等
dt = 開啟(我的路徑...)
評估(原始Pref)
回覆:繞過腳本中的 Excel 匯入精靈我在 Mac 上使用 JMP 17.2 時仍然遇到此問題,並且開啟 Excel 工作表的程式碼包含需要使用者輸入值的變數。