【发布时间】:2014-05-19 08:38:05
【问题描述】:
我有一个 Windows 窗体应用程序。在此应用程序中,我将 Excel 文件保存到文件夹。这是保存文件的函数:
Public Sub ExportToXls(ByRef dt As DataTable, ByRef path As String)
On Error Resume Next
'I use Microsoft.Office.Interop.Excel version = 12
Dim xlApp As Microsoft.Office.Interop.Excel.Application
Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook
Dim xlWorkSheet As Microsoft.Office.Interop.Excel.Worksheet
Dim misValue As Object = System.Reflection.Missing.Value
xlApp = New Microsoft.Office.Interop.Excel.ApplicationClass
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets(1)
For i1 As Integer = 0 To dt.Columns.Count - 1
xlWorkSheet.Cells(1, i1 + 1) = dt.Columns(i1).Caption
Next
For i1 As Integer = 0 To dt.FieldCount - 1
xlWorkSheet.Cells(2, i1 + 1) = dt.Fields(i1)
Next
Dim fi As New FileInfo(path)
If fi.Exists Then
fi.Delete()
End If
' Default path is X:\WMisch.xls
' here on X: I have all rights.
xlWorkSheet.SaveAs(Filename:=path, FileFormat:=Microsoft.Office.Interop.Excel.XlFileFormat.xlExcel8)
xlWorkBook.Close()
xlApp.Quit()
xlApp = Nothing
xlWorkBook = Nothing
xlWorkSheet = Nothing
On Error GoTo 0
End Sub
在超过 1 台 PC/服务器上一切正常,但在一台服务器上,使用 Windows Server 2008 R2 Standard,不工作(不将文件保存到路径 X:\WMisch.xls)。在这里,在这台服务器上安装了 Office 2003,但我还安装了 MS Office Interop 版本 12。
谁能告诉我问题出在哪里? 谢谢!
【问题讨论】:
-
请定义“不起作用” - 有例外吗?哪一个?哪一行抛出错误?输出是否与预期不同?有什么不同?
-
我没有错误,但应用程序没有将文件保存到 X:\WMisch.xls。
标签: vb.net excel office-interop