Я создаю приложение формы окон, используя визуальный базовый (visual studio 2008).Как экспортировать в excel из winform vb.net 2008 без офиса?
Идея состоит в том, чтобы запросить базу данных MySQL и экспортировать результаты в документ 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
И это прекрасно работает на моем ноутбуке (который имеет офис 2003 установлен), но когда я создаю пакет установки и установить его на сервере, где я собираюсь использовать его (который не установлен офис), я получаю эту ошибку:
"Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80040154."
за то, что я читал, это проблема при попытке используйте excel, когда его нет на компьютере, я могу понять, что меня действительно смущает то, что Я использовал приложения, которые экспортируют информацию, чтобы добиться успеха даже на компьютерах без установки на них офиса, как они могут это сделать?
И для записи мне нужен файл excel, а не CSV.
Большое спасибо.
Смотрите этот вопрос для некоторых идей: how-can-i-programatically-create-read-write-an-excel-without-having-office-inst – Crispy