Ich baue eine Windows-Formularanwendung mit Visual Basic (Visual Studio 2008).
Die Idee ist, eine MySQL-DB abzufragen und die Ergebnisse in ein Excel-Dokument zu exportieren.
Dies ist mir mit diesem Code gelungen (ich zeige nur den Teil, der in Excel exportiert wird):
Imports Excel = Microsoft.Office.Interop.Excel
Imports System.IO
Imports System.Data
Imports MySql.Data.MySqlClient
Imports System.Configuration
Imports System.Runtime.InteropServices
Private Sub btn_getReport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_getReport.Click
Dim wb As Excel.Workbook
Dim ex As New Excel.Application
wb = ex.Workbooks.Add(System.Reflection.Missing.Value)
Dim sheet As Excel.Worksheet = CType(wb.Worksheets.Add, Excel.Worksheet)
sheet.Name = "algo"
Dim i As Integer = 1
Try
While reader.Read
sheet.Cells(i, 1) = CStr(reader.Item(0))
sheet.Cells(i, 2) = CStr(reader.Item(1))
sheet.Cells(i, 3) = CStr(reader.Item(2))
i += 1
End While
Catch MyEx As MySqlException
RaiseEvent MySqlError(Err, MyEx, "read")
Catch exc As Exception
RaiseEvent MySqlError(Err, exc, "read")
End Try
Dim dialog As New SaveFileDialog
Dim result As DialogResult = dialog.ShowDialog
Try
wb.SaveAs(dialog.FileName)
Catch exerr As Exception
End Try
'Show the spreadsheet.
'ex.Visible = True
'wb.Activate()
End Sub
Und es funktioniert gut auf meinem Laptop (auf dem Office 2003 installiert ist), aber wenn ich das Setup-Paket erstelle und es auf dem Server installiere, auf dem ich es verwenden werde (auf dem Office nicht installiert ist), erhalte ich diese Fehlermeldung:
"Abrufen der COM-Klassenfabrik für Komponente mit CLSID {00024500-0000-0000-C000-000000000046} ist aufgrund des folgenden Fehlers fehlgeschlagen: 80040154."
Für das, was ich gelesen habe, ist dies ein Problem beim Versuch, Excel zu verwenden, wenn es nicht auf dem Computer vorhanden ist, kann ich verstehen, dass, was wirklich verwirrt mich ist, dass ich Anwendungen verwendet haben, die Informationen zu Excel exportieren, auch auf Computern laufen, ohne dass Office auf ihnen installiert, wie können sie das tun?
Und damit das klar ist: Ich brauche die Excel-Datei, nicht die CSV-Datei.
Herzlichen Dank.