我有一个脚本,可将测量文件从Excel导入到组合文件中,然后将文件ID的一部分拉到“部件ID”列中,然后该列必须引用带有“代码键”的表,该文件将文件ID与实际零件ID。
Excel文件具有三个工作表,其中只有一个对数据有用。 导入很容易。
我想直接获取位于第一个工作表上单元格D7中的* real *零件ID。
有没有一种方法可以从不确定数目的文件中的每一个中获取此值,并将其存储在数组或其他变量中,然后将其转储到主文件中?
您可以将Microsoft Excel工作簿视为关系数据库。这样,您可以使用SQL为所需的值指定查询。您可以交互地执行整个过程以确保它可以正常工作,然后生成的数据表将包含带有所需JSL的Source table脚本。
开始这里有关完整的说明和示例,请参见JMP在线文档。
@ andersonmj2 ,
如果您没有设置ODBC,也没有设置系统文件,则可能会有一点学习困难,尤其是如果您的PC上安装了32位Office。
标记, @markbailey 从JMP 13和早期的JMP14开始,Microsoft Office使用SYSWOW的指令不是很可靠。这些说明仅适用于某些PC,不适用于其他PC。 自从早期JMP 14以来,JMP做了一些事情来设置DBase,Text和Excel ODBC吗?如果是,我很感兴趣。如果不是这样,则为JSL Companion编写了PDF,其中包含似乎可靠的详细说明,但其中包含多个步骤。我认为值得进行设置,以便能够使用SQL查询不同的文件类型。
因此,以下脚本将演示使用JMP Excel向导的替代方法。不能保证性能。 该脚本向JSL forr显示了一个文件,该脚本必须创建一个循环以寻址所有文件。
查看结果日志 cid =“ 70.gg.7”;
请注意,由于Excel列标题(A,B,...)表示1行,因此使用第8个值。
Names Default to Here(1);
//create Excel workbook
dt1_1 = New Table("Dummy",
New Column("A", Character, Values({"red", "white", "green", "blue", "yellow", "orange", "black", "magenta"})),
New Column("B", Numeric, Values({1,2,3,4,5,6,7,8})),
New Column("C", Numeric, Values({10,20,30,40,50,60,70,80})),
New Column("D", Character, Values({"10.aa1","20.bb.2", "30.cc.3", "40.dd.4", "50.ee.5","60.ff.6", "70.gg.7","80.hh.8"})),
New Column("E", Numeric, Values({101,102,103,104,105,106,107,108}))
);
wait(0);
dt1_2 = Open("$sample_data/Big Class.jmp");
dt1_3 = Open("$sample_data/Iris.jmp");
Create Excel Workbook("c:/temp/Test_GetExcelValue.xlsx", {"Dummy", "Big Class", "Iris"}, {"Sheet1", "Sheet2", "Sheet3"});
wait(0);
Close(dt1_1,Nosave);
Close(dt1_2,Nosave);
Close(dt1_3,Nosave);
//========================================================================
xl_dt3 = Open( "c:/temp/Test_GetExcelValue.xlsx", Invisible,
Worksheets("Sheet1"),
Worksheet Settings(1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 8 ),
Data Starts on Column( 4 ),
Data Ends on Row(8), //0 >> not set, read to end of rows
Data Ends on Column(4), //0 >> not set, read to end of cols
)
);
cid = xl_dt3[1,1];
close(xl_dt3,NoSave);
show(cid);