【问题标题】:Convert xls to xlsx without interop在没有互操作的情况下将 xls 转换为 xlsx
【发布时间】:2014-05-05 04:24:54
【问题描述】:

我的公司网络上有一台没有安装办公室的计算机(实际上是几台机器)。我需要开发一个 vb.net 程序,该程序将解析来自通常为 .xls 格式的电子表格的信息。我不认为没有互操作从 .xls 文档中读取数据的选项很多。如果有,有哪些选择?

如果我什至可以在没有互操作的情况下以编程方式将 .xls 转换为 .xlsx,那也是一种选择。然后我可以使用 ClosedXML 从 xlsx 解析。或者有没有办法用我没有看到的 ClosedXML 读取 .xls 文件?

任何帮助都会很棒,因为我很难找到这个问题的答案。

【问题讨论】:

    标签: vb.net excel office-interop


    【解决方案1】:

    您无需使用 com interop 来读取 Excel 文件。您可以使用 OleDb(尽管您可能需要安装 office data connectivity components)

    Imports System.Data.OleDb:
    
    Public Shared Function ReadExcelWorkSheet(ByVal sheetName As String, ByVal connectionString As String) As DataTable
        Dim sql As String = String.Format("SELECT * FROM [{0}$]", sheetName)
        Dim dt = New DataTable()
    
        Using conn As OleDbConnection = New OleDbConnection(connectionString)
            Using cmd = New OleDbCommand(sql, conn)
                conn.Open()
                Using adapter = New OleDbDataAdapter(cmd)
                    adapter.Fill(dt)
                End Using
            End Using
            conn.Close()
        End Using
        Return dt
    End Function
    

    其中连接字符串用于 xlsx 文件:

    Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES";
    

    或者对于 xls 文件:

    Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myOldExcelFile.xls;Extended Properties="Excel 8.0;HDR=YES";
    

    更多关于connection strings的信息在这里

    【讨论】:

    • 谢谢!我也很欣赏代码 sn-p。我只需要安装 Microsoft.Ace.OleDB.12.0 提供程序,但我认为这应该可以工作。
    【解决方案2】:

    您可以通过 ADO.Net 阅读它。我需要查看您现有的代码,但这应该允许您在没有 Excel 的情况下打开它。

    System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;
    Extended Properties='Excel 12.0 Xml;HDR=YES';")
    

    【讨论】:

    • 更新:根据other answer,此使用的组件可能必须单独安装
    • 谢谢吉米,这就是我要做的。感谢帮助
    猜你喜欢
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 2016-06-26
    相关资源
    最近更新 更多