从 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 );