【发布时间】:2014-01-01 05:32:28
【问题描述】:
我有一个从另一个执行一些VBA 代码的过程写入的 csv 文件,我想在VB.NET 中将最后修改/保存的日期写入控制台。以下代码不断返回以下错误
The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))
我哪里错了
VB
Dim xlApp As New Microsoft.Office.Interop.Excel.Application
Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook
xlWorkBook = xlApp.Workbooks.Open("C:\Book3.csv")
Dim DocProps As Object = xlWorkBook.BuiltinDocumentProperties
MsgBox(DocProps("Last Save Time").value)
C#
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application()
Microsoft.Office.Interop.Excel.Workbook xlWorkBook = default(Microsoft.Office.Interop.Excel.Workbook)
xlWorkBook = xlApp.Workbooks.Open("C:\\Book3.csv")
object DocProps = xlWorkBook.BuiltinDocumentProperties
Interaction.MsgBox(DocProps("Last Save Time").value)
编辑: 仍然没有快乐。似乎DocumentProperties 都没有任何值。认为这可能是 csv 文件而不是 excel 工作簿的问题,但 csv 文档的属性太不确定为什么这不适用于 csv 文件。
'~~> Define your Excel Objects
Dim xlApp As New Microsoft.Office.Interop.Excel.Application
Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook
Dim DocProps As Object, DProps As Object
xlWorkBook = xlApp.Workbooks.Open("C:\Book3.csv")
DocProps = xlWorkBook.BuiltinDocumentProperties
'~~> Display Excel
xlApp.Visible = False
'~~> Loop via all properties
If Not (DocProps Is Nothing) Then
Dim i As Integer
For i = 1 To DocProps.Count - 1
Try
DProps = DocProps(i)
Console.WriteLine("{0} -> {1}", DProps.Name, DProps.value)
Catch
End Try
Next i
End If
'~~> Save and Close the File
xlWorkBook.Close(True)
'~~> Quit the Excel Application
xlApp.Quit()
'~~> Clean Up
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp)
xlApp = Nothing
Catch ex As Exception
xlApp = Nothing
Finally
GC.Collect()
End Try
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkBook)
xlWorkBook = Nothing
Catch ex As Exception
xlWorkBook = Nothing
Finally
GC.Collect()
End Try
【问题讨论】:
-
我认为您实际上并没有使用VB6?可能应该删除该标签。
标签: c# vb.net excel visual-studio csv