c# - 访问文档属性 - VB 中的 Excel 工作簿/CSV

标签 c# vb.net excel visual-studio csv

我有一个从执行一些 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)

http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.workbook.builtindocumentproperties.aspx

编辑: 仍然没有快乐。似乎所有 DocumentProperties 都没有任何值。认为这可能是 csv 文件而不是 excel 工作簿的问题,但 csv 文档也有属性,因此不确定为什么这不适用于 csv 文件。

console output

        '~~> 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/

相关文章:

asp.net - Gridview 默认编辑中的多行文本框

vb.net - app.config--configSections--sectionGroup : allowExeDefinition ="MachineToLocalUser"

vba - Excel VBA 抓取网页

vba - 在VBA中打印平面文件中不带引号的字符串

c# - 带有可选返回记录集的存储过程的 Entity Framework

c# - 导航到页面期间 Windows Phone 设备中的 ExecutionEngineException

c# - 通用接口(interface),通用接口(interface)与泛型

asp.net - Paypal notify_url 不返回值,也没有在数据库中插入任何内容

c# - 使用命名空间

python - 从 Excel 到元组列表