我有一个从执行一些 VBA
代码的另一个过程编写的 csv 文件,我想将上次修改/保存的日期写入 VB.NET
中的控制台。以下代码不断返回以下错误
参数不正确。 (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
最佳答案
Try giving this a shot from MSDN
Dim properties As Microsoft.Office.Core.DocumentProperties
properties = DirectCast(Globals.ThisWorkbook.BuiltinDocumentProperties, _
Microsoft.Office.Core.DocumentProperties)
Dim prop As Microsoft.Office.Core.DocumentProperty
prop = properties.Item("Last Save Time")
关于c# - 访问文档属性 - VB 中的 Excel 工作簿/CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20566655/