從 jmp 表格列匯入和修改 Excel 工作表你好,
我正在嘗試使用 jmp 表中的資料修改 Excel 工作表。假設我們的 Excel 工作表採用這種格式

當“D/P”行==“Driver”時,我們希望用“Protection”和“doors”填充“LabelA”和“LabelA_numbers”列
當「D/P」行==「Passanger」時,將「Protection」和「Doors」的其餘行填入「LabelB」和「LabelB_numbers」列。

所以最終的 Excel 工作表應該是這樣的

dt = open("$SAMPLE_DATA/Cars.jmp")
formula_Sheet = open("C:\record_table.xlsx",
Worksheet Settings(
1,
Has Column Headers( 1 )
));
我們該怎麼做 ?
謝謝
約書亞
大規模客製化回复:從 jmp 表列導入和修改 excel 工作表您應該使用 JMP Excel 嚮導打開文件一次,然後轉到數據表左上角數據表“表格面板”中的源條目,右鍵單擊綠色箭頭並選擇編輯。它將向您顯示用於正確讀取您正在閱讀的表格的 JSL。
回复:從 jmp 表列導入和修改 excel 工作表是的,相信我,我正在這樣做。 但是對於我想做的事情,它不是很好的文檔。太籠統的東西。 這就是為什麼我們有這個論壇來詢問我們在手冊中找不到的東西。 例如在手冊中它沒有解釋為什麼我得到 Column 1 , Column2 ...等而不是 excel 工作表的真實列名。
formula_Sheet = open("C:\record_table.xlsx", 工作表設置(
1、
有列標題( 1 )))回复:從 jmp 表列導入和修改 excel 工作表有幾種方法可以進行您要求的更改,但最直接的方法是
:City[2] = "colombia";
我強烈建議您花時間閱讀 JMP 腳本指南。它位於幫助下拉菜單下的 JMP 文檔庫中。
回复:從 jmp 表列導入和修改 excel 工作表謝謝吉姆,
首先,當我閱讀 record_table.xlsx 時,我得到了這樣的表格

並在運行腳本後得到這個

另一件事是,如果我想將城市列第 2 行 =“巴拿馬”更改為“哥倫比亞”,我該怎麼做?
謝謝
回复:從 jmp 表列導入和修改 excel 工作表這是一個腳本,可以為您提供所需的內容。我不確定這是你想要採用的方法,但考慮到你的起點和你描述的終點,我相信這可能是解決問題的最有效方法。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Cars.jmp" );
formula_Sheet = open("C:\record_table.xlsx");
//formula_Sheet = Open( "$DOCUMENTS\discussion group\record_table.jmp" );
formula_Sheet << delete columns( {"labela", "labela_numbers", "labelb", "labelb_numbers"} );
dt << select where( dt:name( "D/P" ) == "Driver" );
dtA = dt << subset( invisible, columns( :Protection, :Doors ), selected rows( 1 ) );
dtA:Protection << set name( "LabelA" );
dtA:Doors << set name( "LabelA_numbers" );
dt << select where( dt:name( "D/P" ) == "Passenger" );
dtB = dt << subset( invisible, columns( :Protection, :Doors ), selected rows( 1 ) );
dtB:Protection << set name( "LabelB" );
dtB:Doors << set name( "LabelB_numbers" );
dtJoin1 = dtA << Join( invisible, With( dtB ), Merge Same Name Columns,By Row Number );
Close( dtA, nosave );
Close( dtB, nosave );
dtFinal = formula_sheet << join( with( dtJoin1 ), Merge Same Name Columns,By Row Number );
Close( dtJoin1, nosave );
Close( formula_sheet, nosave );