Página 1 de 1

leer datos de excel e ingresarlos en formulario web

Publicado: 12 Oct 2009, 20:55
por Mithrandir
Estoy intentando crear un script que a partir de un archivo de excel, lea las celdas e ingrese el contenido de ellas en un formulario en la web. Las dudas que tengo son:

1) Quiero ingresar datos que están en diferentes columnas separados por un espacio y lo que se me ocurrió fue poner una columna en blanco y luego al rellenar el formulario uno las variables con las que leí cada columna. Pero no sé si tenga que definir una nueva variable que sea la union de las variables con las que lei cada columna y luego rellenar el formulario con esa variable.

2)Entre cada ingreso quiero reconectarme a internet. Yo hice un macro con ayuda del plugin mouseless browsing para firefox (tengo router e ip dinámica) pero tengo que dejarle un tiempo para esperar que me den una ip nueva. Hay algun comando o macro para reconectarme a internet en autoit?

3)Hay algún comando que chequee que haya conexion a internet para seguir el script (con un If pensé pero lo que quiero es que espere hasta que haya conexion)?

Acá les dejo el código (la web de blogger es un ejemplo aleatorio ya me funciona esa parte)

Código: Seleccionar todo


#include <IE.au3>

#include <Excel.au3>



$oIE = _IECreate ("http://www.blogger.com/post-create.g?blogID=*******")

$sFilePath1 = "C:\Documents and Settings\Pablo\Mis documentos\Libro1.xls"

$oExcel = _ExcelBookOpen($sFilePath1)

For $i = 1 To 3 ;Loop

    $sCellValue = _ExcelReadCell($oExcel, $i, 1);celda con texto

    $sCellValue2 = _ExcelReadCell($oExcel, $i, 2);celda en blanco para dejar un espacio

    $sCellValue3 = _ExcelReadCell($oExcel, $i, 3);celda con texto

    _ExcelReadCell($oExcel, $i, 1)

    _ExcelReadCell($oExcel, $i, 2)

    _ExcelReadCell($oExcel, $i, 3)

$oForm = _IEFormGetCollection ($oIE, 0)

$oQuery = _IEFormElementGetCollection ($oForm, 6)

_IEFormElementSetValue ($oQuery, $sCellValue&$sCellValue2&$sCellValue3);uno $sCellValue (texto) con $sCellValue2 (espacio) con $sCellValue3 (texto). Se puede hacer?

_IEFormSubmit ($oForm)

Run("C:\Documents and Settings\Pablo\Mis documentos\reconectador del router2.exe")

Sleep(240000)

_IENavigate($oIE,"http://www.blogger.com/post-create.g?blogID=*******")

Next

 

¡Gracias de antemano!

Re: leer datos de excel e ingresarlos en formulario web

Publicado: 13 Oct 2009, 20:04
por Chefito
Hola.
Mithrandir escribió:1) Quiero ingresar datos que están en diferentes columnas separados por un espacio y lo que se me ocurrió fue poner una columna en blanco y luego al rellenar el formulario uno las variables con las que leí cada columna. Pero no sé si tenga que definir una nueva variable que sea la union de las variables con las que lei cada columna y luego rellenar el formulario con esa variable.
Juer tio, que lio de explicación :smt005 . Puedes coger la información de cualquier celda del excel y tratar lo de dentro con lo que quieras. Puedes almacenar la información por ejemplo en un array para luego recuperarlo.
Mithrandir escribió:2)Entre cada ingreso quiero reconectarme a internet. Yo hice un macro con ayuda del plugin mouseless browsing para firefox (tengo router e ip dinámica) pero tengo que dejarle un tiempo para esperar que me den una ip nueva. Hay algun comando o macro para reconectarme a internet en autoit?
Mmmmm.....seguramente necesitas reconectar para conseguir otra ip pública, y eso solo se consigue reseteando el router. Seguramente se puede acceder a la opción de reseteo del router por web (desde el IE), y como autoit puede tratar las páginas web.....pues eso. Mira las intrucciónes que empiezan por _IE....... para tratar las páginas webs.
Si quieres cambiar la ip privada entonces es otra historia.
Mithrandir escribió:3)Hay algún comando que chequee que haya conexion a internet para seguir el script (con un If pensé pero lo que quiero es que espere hasta que haya conexion)?
Hay varias formas, pero pienso que la mejor es con la función Ping a una web que prácticamente nunca se caiga (www.google.es, www.microsoft.com, etc). Según el resultado del ping tendrás conexión o no.
También puedes mirar la api gethostbyname.
Y puede que te sea interesante también la api InternetGetConnectedState.

Saludos.