Pregunta

Mi jefe me pidió que exportar la base de datos insectos Mantis de la corp a Excel, pero no me puede dar acceso al SQL Server, y el proceso tiene que ser automatizado.

La única cosa que puedo utilizar es Excel (sin ODBC, ninguna exportación manual).

Así que me las arreglé para hacer esto:

Dim webClient As Object
Dim i As Long, vFF As Long, oResp() As Byte
Dim vLocalFile As String
Dim username As String, password As String

username = "blahblah"
password = "blahblah"

Set webClient = CreateObject("WinHttp.WinHttpRequest.5.1")

// Opening the connection to the application with a POST, containing user, password, and "permanent login" checked

webClient.Open "POST", "http://10.202.157.40/mantisbt-1.1.6/login.php", False
webClient.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
webClient.send ("username=" & username & "&password=" & password & "&perm_login=on")

// Now I set the "project" to "All Projects" (as I want the view to display our 2200 bugs)

webClient.Open "POST", "http://10.202.157.40/mantisbt-1.1.6/set_project.php", False
webClient.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
webClient.send ("project_id=0")

// The problem is, the last query displays 624 bugs instead of 2200, but I noticed when I click on "Advanced Filters" it successfully show the 2200 bugs (tested under a web browser AND Excel : the ResponseText shows them)

webClient.Open "GET", "http://10.202.157.40/mantisbt-1.1.6/view_all_set.php?type=6&view_type=advanced", False
webClient.send

// And NOW I can download the CSV file... (and that's where something is wrong *)

webClient.Open "GET", "http://10.202.157.40/mantisbt-1.1.6/csv_export.php", False
webClient.send

oResp = webClient.responseBody

// Creating a file and then filling it...
vFF = FreeFile
vLocalFile = "_mantis_export.csv"
If Dir(vLocalFile) <> "" Then Kill vLocalFile
Open vLocalFile For Binary As #vFF
Put #vFF, , oResp
Close #vFF

// Freeing memory
Set webClient = Nothing

(*: CF el código) La línea de antes, el responseText mostró "bichos" 2200, así que todo estaba bien hasta la última consulta (csv_export.php). El guión, cuando se le llama desde un navegador, muestra exactamente la misma que la página que se llama (si la página 2 mostró errores, la CSV incluye 2 errores). Con mis errores 2200 muestran en IE / Firefox, el CSV me lleva 2200 insectos. Sin embargo, en Excel, incluso si la muestra responseText 2200 insectos, la CSV me lleva 624 errores ... Como si no hubiera llamado el "Filtro avanzado" página: (

Espero que alguien pueda entender y ayudar a mí;)

Gracias de antemano,

David

¿Fue útil?

Solución

Tal vez sería más fácil para que usted utilice la API de SOAP? El punto de entrada es en http: //server/mantis/api/soap/mantisconnect.php .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top