【问题标题】:How to process excel file in vb.net without office installed如何在没有安装office的情况下在vb.net中处理excel文件
【发布时间】:2014-06-18 15:32:41
【问题描述】:

我对 VB.net 相当陌生,从未使用它来处理 Office 文件。 现在我必须查看 Excel 文件并根据单元格中的数据发送一些电子邮件。我不需要向这些文件写入任何内容。 到目前为止,我已经阅读了很多关于 PIA 的内容,到目前为止,我似乎必须为特定的 Office 版本设计我的应用程序? 有没有办法编写可以处理由不同版本的 MS Excel 创建的文件的应用程序? 我希望能够在计算机上完全不安装 Office 的情况下处理这些文件,有什么办法吗?

【问题讨论】:

  • 您需要支持哪些格式? Excel 能做什么?只有某些版本的 Excel?请记住,旧版本仅使用 XLS 格式,它本质上是 Excel 内部数据结构的二进制转储。在不重写 Excel 的情况下进行解析将非常困难。较新的版本使用 XLSX 格式,基本上是包含 XML 文件的 ZIP 文件。如果您可以保证这是您将收到的唯一输入,那么这将更容易解析。

标签: vb.net excel ms-office


【解决方案1】:

无需安装 Office 即可从 excel 文件中获取数据。

但是为了从 EXCEL 文件中获取数据,如果您将应用程序托管在服务器上,则必须在本地计算机和服务器上安装 OLEDB 驱动程序。

您可以从MICROSOFT下载OLEDB驱动。

 con = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + YourEXCELFilePath + ";Extended Properties=Excel 12.0;")

con.Open()
atatable = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
sheetname = datatable.Rows(0)("table_name").ToString
excelcomm = New OleDbCommand("select * from [" + sheetname + "]", con)
adexcel = New OleDbDataAdapter(excelcomm)
adexcel.Fill(Dataset)

在此代码之后,您将获得数据集中的 excel 工作表数据。

此代码是否可以帮助您从 excel 文件中获取数据。

(注意:此代码在 vb.net 中)

【讨论】:

    【解决方案2】:

    您可以使用 Open XML SDK 2.0 for Microsoft Office link

    【讨论】:

      【解决方案3】:

      你可以使用

      1. npoi

      2. epplus

        不需要excel

      【讨论】:

      • +1 对于 EPPlus。这是我使用的主要库。我发现它易于使用,并且可以完成我需要的大多数事情。它没有我在使用 OLEDB 驱动程序时遇到的性能问题。
      • 因为我需要处理 .xls 文件,所以我决定使用 excellibrary,到目前为止效果很好。正在考虑使用 NPOI,但在某处读到它不是很“用户友好”,可能会为下一个项目试一试。
      猜你喜欢
      • 2021-10-07
      • 2010-11-26
      • 2016-02-01
      • 2013-01-15
      • 2010-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多