【发布时间】:2010-11-26 23:28:13
【问题描述】:
我正在使用 Visual Basic (Visual Studio 2008) 构建一个 Windows 窗体应用程序。
这个想法是查询一个 MySQL 数据库并将结果导出到一个 excel 文档。
我设法使用这段代码做到了这一点(我将只显示导出到 excel 部分):
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
它在我的笔记本电脑(安装了 office 2003)上运行良好,但是当我创建安装包并将其安装在我要使用它的服务器上(没有安装 office)时,我得到了这个错误:
"正在检索 COM 类工厂 具有 CLSID 的组件 {00024500-0000-0000-C000-000000000046} 由于以下错误而失败: 80040154。”
对于我所阅读的内容,这是在计算机上不存在时尝试使用 excel 时出现的问题,我可以理解,真正让我感到困惑的是,我使用了将信息导出到 excel 的应用程序,甚至在计算机上运行没有安装办公室,他们怎么能这样做?
为了记录,我需要 excel 文件,而不是 CSV。
非常感谢。
【问题讨论】:
-
查看这个问题以获得一些想法:stackoverflow.com/questions/1369361/…>
标签: mysql vb.net winforms excel