导入多个文件亲爱的大家,
我的问题之前可能已经提出过,因为它非常基本,但我找不到我的确切问题的解决方案。
我想导入具有相同结构的多个文件,以相同的方式操作它们,然后将它们的一个子集粘合在一起。 我以以下通用方式完成了导入和数据操作部分:
dt = Open(
"PATH/File1.xlsx",
Worksheets( "Table1" ),
XXX
);
// New operation e.g. New column: Column 2
dt << New Column( "Column 2",
Numeric,
"Continuous",
Format( "Best", 12 )
);<BR /><BR />File1 = dt;<BR />File1 << Set Name("File1");<BR />为了导入更多文件,我会将相同的代码复制到脚本中,并且只用“File2”、“File3”等交换“File1”。 它可以工作,但脚本长度变得相当大,因为我有很多文件要导入。
我还尝试了 IMF 选项。 当我选择“打开多个表”(我不希望它堆叠)时,我已经将数据表链接到特定名称,并且无法使用上述通用代码对其进行操作。
关于更优雅的解决方案的任何想法?
非常感谢!
数据表Re: 导入多个文件你可以尝试使用函数()(jmp.com)或 expr()。 以下是使用 function() 的几个选项:
Names Default To Here(1);
open_and_modify = function({file_path}, {Default Local},
dt = Open(file_path, Worksheets("Table1"), XXX);
// New operation e.g. New column: Column 2
dt << New Column("Column 2", Numeric, "Continuous", Format("Best", 12));
dt << Set Name("File1");
return(dt);
);
dt1 = open_and_modify("PATH/File1.xlsx");
dt2 = open_and_modify("PATH/File2.xlsx");
dt3 = open_and_modify("PATH/File3.xlsx");
//or have a list of paths
file_paths = {"PATH/File1.xlsx", "PATH/File2.xlsx", "PATH/File3.xlsx"};
//create first concatenate before
table_list = {};
For Each({new_file_path}, files,
Insert Into(table_list, open_and_modify(new_file_path));
);