視頻演示如何更新 JMP 數據表以反映 Excel 更新。由於 JMP 旨在供實際操作且通常不鼓勵自動化,因此您返回 JMP 再次重新運行腳本。注意:當您在 JMP 中運行腳本時,它不會復制控製圖腳本或您在表格面板中保存的任何其他腳本,因此您可能需要將其附加到源腳本中。更自動化的序列將涉及使用 JSL 編寫腳本。
以下是一些腳本資源:
如果你想更新 JMP 數據表以反映 Excel 更新,請通過以下方式查看此願望@vhuac :
https://community.jmp.com/t5/JMP-Wish-List/Join-Concat-and-Update/idc-p/556341/highlight/true#M2499
一些背景:
一個非常籠統的定義更新可能:
有一個 Jmp 數據表(包含許多設置和腳本、添加的列、合併的表等),並且其中一個源表中有一些新數據。
如何獲取更新後的數據這jmp數據表?-即傳輸彩色塊中的所有信息-同時保留灰色塊中的數據。

-表格/更新非常接近我們想要的(藍色和黃色區域) - 但綠色和橙色塊將會丟失。
- 刪除所有條目並表/連接可以解決此問題,但您將丟失從其他來源添加的任何其他數據(灰色區域)
中的一個附加按鈕表格/更新命令應該完成這項工作: “追加附加行”
...或者對於啟用“匹配列”的情況: “追加不匹配的行”
雖然我建議的這些選項不包括“更新”按鈕,並且在不了解更多有關您的分析目標的情況下,這裡有一些不包括編寫 JSL 的潛在解決方案。您始終可以通過搜索來請求功能,給他們點贊,如果功能請求不存在,則在JMP 願望清單。
一種方法是使用增強日誌(如果您有版本 16 或更高版本)。 增強型日誌將任務記錄在日誌頂部,並在下面寫入 JSL。
另一種方法是使用工作流程生成器(如果您有版本 17),它使增強日誌更進一步。 因此,如果問題是,您不想丟失任何腳本,或者您不想使用新數據再次重複分析,因為這三種方法都會創建一個新的數據表。 我建議使用可以導入數據、創建圖表或分析的 Workflow Builder。它甚至可以將報告保存為 JPG、PDF 甚至 JMP Live。 因此,您可以執行所有 3 項操作:導入、創建報告和共享,所有操作都在工作流程生成器中完成。
下面是 JSL(我承認我是從 Workflow Builder 複製的),我在其中使用 Big Class 從 Excel 導入數據並創建了 . 如果更新 Excel 文件,新更新的數據將作為新數據表進入 JMP:
Names Default To Here( 1 );
//Import Excel file: Big Class.xlsx
Open(
"$DESKTOP/Big Class.xlsx",
Worksheets( "Big Class" ),
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( "-" )
)
);
//Report snapshot: Big Class - Graph Builder
Data Table( "Big Class" ) << Graph Builder(
Size( 522, 452 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ) ), Line Of Fit( X, Y, Legend( 5 ) ) )
);
//Save to image: $DESKTOP/Big Class - Graph Builder.pdf
Local( {obj},
obj = (Data Table( "Big Class" ) <<
Graph Builder(
Size( 522, 452 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ) ), Line Of Fit( X, Y, Legend( 5 ) ) )
)) << Report;
(obj << Get Picture( Type( "Scalable" ) )) <<
Save Image( "$DESKTOP/Big Class - Graph Builder.pdf", "PDF" );
obj << Close Window;
);
該腳本從 Excel 導入數據,創建圖形生成器報告,然後將報告保存到 PDF 文件。每次運行腳本時,如果 Excel 文件更新為新數據,JMP 數據表、圖形和 PDF 也會更新。
我剛剛找到這個帖子。 這個標題聽起來非常有前途。
但作為@kmouloua指出,不幸的是,視頻沒有展示如何更新數據表。
作為附加@唐麥考馬克的建議:
還可以使用 JMP 數據表作為 Jmp 查詢生成器的源
...這樣就可以得到一個可比的更新腳本(沒有 64 位 Excel 和 64 位 Access 
該腳本中的一個微小更改將使其能夠從新的數據表(即之前的數據表)讀取數據。 @alisa_h_lowery通過重新運行源腳本生成)。
另一方面:
許多用戶只會通過 Open 導入文件,而不會執行不必要的 Jmp 查詢步驟 - 只是為了獲得更新按鈕。
對於這種情況,一個通用更新按鈕仍然缺失。
因此,如果沒有額外的 JSL 查詢步驟:沒有簡單的方法更新 JMP 數據表以反映 Excel 更新?
@kmouloua這有點棘手,因為它要求你
- 擁有 64 位 Excel
- 擁有允許您連接到 64 位 Excel 作為數據庫的 Microsoft Access 驅動程序。
- 擁有計算機的管理權限,允許您創建用戶或系統 DSN 以將工作簿作為數據庫連接。
如果您具備這三件事,則通過“打開數據庫”選項打開 Excel 工作表將創建一個表腳本“從數據庫更新”,該腳本將就地更新表。
你好,
我按照您視頻中有關“如何更新 JMP 數據表以反映 Excel 更新”主題。
但是,不會更新現有表,而是創建一個包含更新數據的新表。 如何使主表在沒有重複表的情況下進行更新,以便我被迫使用“表”菜單下可用的“更新表”功能?
謝謝
卡里姆