[.NET] Windows Services 與 Excel

看板Visual_Basic作者 (竹本口木子)時間13年前 (2011/01/21 09:46), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
請教各位前輩 之前我在winform下寫了一個可以從datatable匯出成Excel檔案的Function 在這個專案有參考Microsoft.Office.Interop這個類別 在winform下,可以很正常的匯出Excel 但因有特殊需求,因此把專案改成windows service 安裝成服務之後,也勾選了 桌面互動,程式也確定有執行 但就是無法匯出Excel... 因windows service也無法使用msgbox秀出訊息 這到底是Microsoft.Office類別無法在Services的專案執行 或是有哪個地方錯了呢??? 以下是我匯出Excel的Function Private Sub ExportDT2Excel(ByVal dt As DataTable, ByVal fileName As String, ByVal SheetName As String) Dim oXL As Excel.Application Dim oWB As Excel.Workbook Dim oSheet As Excel.Worksheet GC.Collect() oXL = New Excel.Application oXL.Visible = False oWB = CType(oXL.Workbooks.Add(System.Reflection.Missing.Value),Excel.Workbook) oSheet = CType(oWB.ActiveSheet, Excel.Worksheet) oSheet.Name = SheetName For j As Int16 = 0 To dt.Columns.Count - 1 oSheet.Cells(1, j + 1) = dt.Columns(j).ColumnName Next oSheet.Rows(1).AutoFilter(Field:=1) For i As Int16 = 0 To dt.Rows.Count - 1 For j As Int16 = 0 To dt.Columns.Count - 1 oSheet.Cells(i + 2, j + 1) = dt.Rows(i)(j).ToString oSheet.Cells(i + 2, j + 1).EntireColumn.AutoFit() Next Next oXL.Visible = False oXL.UserControl = False oWB.SaveAs(fileName, Excel.XlFileFormat.xlWorkbookNormal,Nothing,Nothing,False, False, Excel.XlSaveAsAccessMode.xlShared, False, False, Nothing, Nothing, Nothing) oWB.Close(Nothing, Nothing, Nothing) oXL.Workbooks.Close() oXL.Quit() System.Runtime.InteropServices.Marshal.ReleaseComObject(oXL) System.Runtime.InteropServices.Marshal.ReleaseComObject(oSheet) System.Runtime.InteropServices.Marshal.ReleaseComObject(oWB) oSheet = Nothing oWB = Nothing oXL = Nothing GC.Collect() End Sub -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.73.208.249
文章代碼(AID): #1DEEMInj (Visual_Basic)