imacros从excel读取

时间:2017-03-17 18:19:44

标签: excel imacros

我有一个代码可以将数据从csv文件导入iMacros,而我现在被击中的部分是iMacros正在打印excel行的值,我希望它以colulmn方式打印。虽然我使用了{keyword !Col1}}

,但我收到此错误
VERSION BUILD=10.4.28.1074
'Uses a Windows script to submit several datasets to a website, e. g. for filling an online database
' Specify input file (if !COL variables are used, IIM automatically assume a CSV format of the input file
'CSV = Comma Separated Values in each line of the filE
TAB T=1
SET !DATASOURCE C:\Users\Arun\Desktop\Book2.csv
'Start at line 2 to skip the header in the file
SET !LOOP 1
'Increase the current position in the file with each loop 
SET !DATASOURCE_LINE {{!LOOP}}
' Fill web form   
URL GOTO=https://docs.google.com/forms/d/e/1FAIpQLSdDj_Rrydyd1ukk56tOL92LAu-jE9qfi1GwsAUTT1gviZNG7w/viewform?c=0&w=1
TAG POS=1 TYPE=INPUT:EMAIL FORM=ID:mG61Hd ATTR=NAME:emailAddress CONTENT={{!COL1}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:mG61Hd ATTR=NAME:entry.2005620554 CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:EMAIL FORM=ID:mG61Hd ATTR=NAME:entry.1045781291 CONTENT={{!COL3}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:mG61Hd ATTR=NAME:entry.1065046570 CONTENT={{!COL4}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:mG61Hd ATTR=NAME:entry.1166974658 CONTENT={{!COL5}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:mG61Hd ATTR=NAME:entry.839337160 CONTENT={{!COL6}}

'Note * is used to ignore leading and trailing blanks that could be in the input data
'
'The precent (%) symbol is used to select the stateid by VALUE as defined in the website select statement and not by its index.

'
'The string ($) symbol is used to select the country by TEXT, not by its index.
'Index would be the position of an entry in the combo box list, e. g. 161 for United States

2 个答案:

答案 0 :(得分:1)

看看下面给出的一个可接受的解决方法。我们假设您的CSV文件不包含任何感叹号,并且使用逗号作为数据源分隔符。

' fake delimiter
SET !DATASOURCE_DELIMITER "!"
' real delimiter
SET rd ","

SET !DATASOURCE Address.csv

SET !DATASOURCE_LINE 2
SET row2 EVAL("'{{!COL1}}'.split('{{rd}}')[{{!LOOP}}-1];")
SET !DATASOURCE_LINE 3
SET row3 EVAL("'{{!COL1}}'.split('{{rd}}')[{{!LOOP}}-1];")
SET !DATASOURCE_LINE 4
SET row4 EVAL("'{{!COL1}}'.split('{{rd}}')[{{!LOOP}}-1];")
' ...

PROMPT {{row2}}<BR>{{row3}}<BR>{{row4}}

以循环模式播放此宏。它必须适用于“iMacros附加组件”。适用于Firefox或Chrome。我认为我的提示可以帮到你。

答案 1 :(得分:0)

iMacros中的DATASOURCE命令按行加载始终数据(每个LOOP一行)。也许您可以重新排列CSV数据?

另一种解决方案是使用商业版的iMacros Scripting Interface创建自己的数据读取例程。这允许您以任何所需的格式导入数据,然后使用iimSet将其发送到iMacros:http://wiki.imacros.net/Web_Scripting#Example_using_Windows_Scripting_Host

另一个解决方案是使用Kantu,它有一个免费的scripting api