Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/05/2013, 06:40
maialenlopez
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 9 meses
Puntos: 7
terminar proceso EXCEL.EXE desde vb.net

Hola, estoy programando en vb.net y no se como cerrar el proceso de excel que se abre, dentro del código que pondré mas abajo. He intentado hacer lo que tengo en el código para cerrarlo pero muchas veces no consigo cerrarlo.

Alguien me puede ayudar?

Código vb.net:
Ver original
  1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  2.         Dim xls_cn As OleDbConnection
  3.         Dim xls_cmd As New OleDbCommand
  4.         Dim xls_reader As New OleDbDataAdapter
  5.         Dim xls_ds As New DataSet
  6.         Dim mysql_conn As New MySqlConnection
  7.         Dim mysql_comando As New MySqlCommand
  8.         Dim mysql_connstring, insert, nombreXls, fecha, factura, tTrafico, telefono, extension, cantidad, bruto, neto, facturado As String
  9.         Dim strExtension As String = ""
  10.         Dim m_Excel As Microsoft.Office.Interop.Excel.Application
  11.         Dim total, i, notificado As Integer
  12.  
  13.         If Me.servidor.Text = "" Or Me.usuario.Text = "" Or Me.password.Text = "" Or Me.bbdd.Text = "" Then
  14.             MsgBox("Completa datos de conexión")
  15.             Exit Sub
  16.         End If
  17.  
  18.         Try
  19.             If xlsx = "" Then
  20.  
  21.                 MsgBox("Selecciona un archivo.")
  22.                 Exit Sub
  23.             Else
  24.                 'obtener el nombre del archivo
  25.                 nombreXls = Path.GetFileName(xlsx)
  26.                 'obtener la extension del archivo
  27.                 strExtension = Path.GetExtension(xlsx)
  28.                 If strExtension = ".xls" Or strExtension = ".xlsx" Then
  29.                     'MsgBox("es un archivo excel")
  30.                     If (File.Exists(xlsx)) Then
  31.                         xls_cn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + xlsx + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=0'")
  32.                         m_Excel = CreateObject("Excel.Application")
  33.                         m_Excel.Workbooks.Open(xlsx)
  34.  
  35.                         Dim dt As New DataTable("Datos")
  36.  
  37.                         Using xls_cn
  38.  
  39.                             xls_cn.Open()
  40.                             xls_cmd.CommandText = "SELECT * FROM [Hoja1$]"
  41.                             xls_cmd.Connection = xls_cn
  42.                             xls_reader.SelectCommand = xls_cmd
  43.  
  44.                             'contar candidad de filas del excel
  45.                             total = m_Excel.Range("a1").CurrentRegion.Rows.Count
  46.                             'Guardamos los datos en el DataTable
  47.                             Dim da As New OleDbDataAdapter(xls_cmd)
  48.                             da.Fill(dt)
  49.  
  50.                             For i = 0 To total - 2
  51.  
  52.                                 fecha = dt.Rows(i).Item(2)
  53.                                 factura = dt.Rows(i).Item(3)
  54.                                 telefono = dt.Rows(i).Item(4).ToString
  55.                                 extension = dt.Rows(i).Item(5).ToString
  56.                                 tTrafico = dt.Rows(i).Item(6)
  57.                                 cantidad = dt.Rows(i).Item(8).ToString
  58.                                 bruto = dt.Rows(i).Item(10).ToString
  59.                                 neto = dt.Rows(i).Item(13).ToString
  60.                                 facturado = dt.Rows(i).Item(16).ToString
  61.                                 notificado = "0"
  62.  
  63.                                 '---------------------------------------------------------------------------------------------------------------------
  64.                                 'GUARDAR TODO EN SSIICONSUMOS
  65.                                 Try
  66.                                     mysql_connstring = "server=" + Me.servidor.Text + ";" _
  67.                                         & "uid=" + Me.usuario.Text + ";" _
  68.                                         & "pwd=" + Me.password.Text + ";" _
  69.                                         & "database=" + Me.bbdd.Text + ";"
  70.                                     mysql_conn.ConnectionString = mysql_connstring
  71.                                     mysql_conn.Open()
  72.                                     mysql_comando.Connection = mysql_conn
  73.                                 Catch ex As Exception
  74.                                     MsgBox("Error al realizar la conexión: " & ex.Message)
  75.                                 End Try
  76.                                 fecha = Format(CDate(fecha), "yyyy-MM-dd")
  77.                                 cantidad = Replace(cantidad, ",", ".")
  78.                                 bruto = Replace(bruto, ",", ".")
  79.                                 neto = Replace(neto, ",", ".")
  80.                                 facturado = Replace(facturado, ",", ".")
  81.                                 insert = "INSERT INTO detalle4(factura, telefono, extension, tipo_trafico, fecha, cantidad, bruto, neto, facturar, notificado) VALUES ('" & factura & "','" & telefono & "','" & extension & "','" & tTrafico & "','" & fecha & "','" & cantidad & "','" & bruto & "','" & neto & "','" & facturado & "','" & notificado & "')"
  82.                                 mysql_comando.CommandText = insert
  83.                                 Try
  84.                                     mysql_comando.ExecuteNonQuery()
  85.                                 Catch ex As Exception
  86.                                     'MsgBox("Error bbdd" & Chr(13) & Chr(13) & ex.Message)
  87.                                 End Try
  88.                                 mysql_conn.Close()
  89.                             Next
  90.                         End Using
  91.                     End If
  92.                 Else
  93.  
  94.                     MsgBox("Introduzca un archivo .xls o .xlsx .")
  95.                     Exit Sub
  96.                 End If
  97.             End If
  98.  
  99.         Catch ex As Exception
  100.             MsgBox("Error" & Chr(13) & Chr(13) & ex.Message)
  101.         End Try
  102.  
  103.         'Cerramos la conexión
  104.         xls_cn.Close()
  105.         'Eliminamos la instancia de Excel de memoria
  106.         If Not m_Excel Is Nothing Then
  107.  
  108.             nombreXls = Nothing
  109.             m_Excel.Application.Quit()
  110.             'm_Excel.Quit()
  111.             m_Excel = Nothing
  112.         End If
  113.  
  114.         MsgBox("HECHO")
  115.     End Sub
__________________
Gracias por todo;

Un saludo