-2

如果我在 javascript 中将此代码用于 imacros

for(var i=0;i<10;i++)

并将其放在开头(我将填写 10 张表格)

macro +-= SET !DATASOURCE input.csv

macro +-= SET !DATASOURCE_COLUMNS 7

将每个循环,从我的下一行读取

{{!COL1}} {{!COL2}} {{!COL3}}..ETC

还是我必须放

{{!LOOP}}某处?

所以...如果我想填写表格 10 次,每个循环是否会从下一个 csv 行读取,如果我只是使用

for(var i=0;i<10;i++)

4

2 回答 2

1

您只能在 imacros 中切换这样的行,而不是列。试试这个代码示例:

    var load;
    load =  "CODE:";
    load +=  "set !extract null" + "\n"; 
    load +=  "SET !DATASOURCE input.csv" + "\n"; 
    load +=  "SET !DATASOURCE_COLUMNS 7" + "\n"; 
    load +=  "SET !DATASOURCE_LINE {{i}}" + "\n"; 
    load +=  "SET !extract {{!col1}}" + "\n";
    var load2;
    load2 =  "CODE:";
    load2 +=  "set !extract null" + "\n"; 
    load2 +=  "SET !DATASOURCE input.csv" + "\n"; 
    load2 +=  "SET !DATASOURCE_COLUMNS 7" + "\n"; 
    load2 +=  "SET !DATASOURCE_LINE {{i}}" + "\n"; 
    load2 +=  "SET !extract {{!col2}}" + "\n";
    var load3;
    load3 =  "CODE:";
    load3 +=  "set !extract null" + "\n"; 
    load3 +=  "SET !DATASOURCE input.csv" + "\n"; 
    load3 +=  "SET !DATASOURCE_COLUMNS 7" + "\n"; 
    load3 +=  "SET !DATASOURCE_LINE {{i}}" + "\n"; 
    load3 +=  "SET !extract {{!col3}}" + "\n";
    for(i=1;i<10;i++){
    iimSet("i",i);
    iimPlay(load);
    var content=iimGetLastExtract(0);
    iimSet("i",i);
    iimPlay(load2);
    var content2=iimGetLastExtract(0);
    iimSet("i",i);
    iimPlay(load3);
    var content3=iimGetLastExtract(0);
...
    }
于 2013-02-09T23:09:45.833 回答
0

您还可以通过将整个 CSV 文件加载到变量中来存储 CSV 中的数据。然后您可以使用 split() 方法以逗号分隔并存储在各个变量中。这个代码太长了,但如果你想使用不同的方法,这是一个想法。

于 2013-02-10T01:58:23.457 回答