【问题标题】:Is there a way to import data from an excel sheet into a SQL Server database?有没有办法将数据从 Excel 工作表导入 SQL Server 数据库?
【发布时间】:2017-08-01 13:13:00
【问题描述】:

有没有办法不使用批量方法将数据从 Excel 工作表导入 SQL Server 上的数据库?请记住,我正在创建一个 Web 应用程序,其中用户将一个 excel 文件上传到页面,然后继续将其导入现有数据库。

bulk 方法使用 OleDbDataReader 工作,除了它复制 excel 表并将其粘贴到数据库中而不考虑列名兼容性。我错过了什么吗?

【问题讨论】:

  • SSIS - 是一种方法。
  • --还要记住我使用的是 C# 和 asp.net
  • 您是希望以编程方式执行此操作,还是在 SSMS 中一次性加载?因为 SSMS 是 Sql Server 的 GUI,而不是数据库本身。
  • 我所要做的就是使用谷歌:code.msdn.microsoft.com/office/…
  • 关于 SO,Tamara 的问题有点过于宽泛了。如果您对决定如何解决此问题有具体问题,这里有很多人可以为您提供帮助。有很多很多很多方法可以做到这一点。就个人而言,我建议使用 System.Data.SqlServer 命名空间中的批量方法,因为它们是最快和最简单的方法。请注意,直接使用 Excel 文件并不是最容易使用的,首先将它们转换为 CSV 更容易。祝你好运!

标签: c# sql sql-server


【解决方案1】:

如果您使用 SSMS,请使用 SQL 导入导出向导。 MSDN 上有足够的文档

您可以从代码中使用SqlBulkCopy 类来导入SQL 数据库。如果您将批量记录导入 Oracle,您可以使用 ODP.net OracleBulkCopy。目前仅通过完整的 ODP.net 提供程序支持 Oracle 批量复制。托管 ODP.net 不支持批量操作。

要读取 Excel 文件,您可以使用任意数量的库。
LinqToExcel, OleDb, closedxml

【讨论】:

  • 但我的意思是通过 C# 和 asp.net,我想创建一个隐式执行此操作的 Web 应用程序。抱歉,问题不清楚,我对其进行了编辑。
  • 您的问题仍然是“在 SQL Server Management Studio 上”,而导入向导是 SSMS 中的一个工具。
【解决方案2】:

看看 DocumentFormat.OpenXml.Spreadsheet 命名空间:MSDN Link

它可以让您查看存储在 OpenXML 中的电子表格的不同部分。

【讨论】:

    【解决方案3】:

    您可以将格式文件与批量插入一起使用。格式文件在表格列和文件中的字段之间进行映射。

    参考: https://docs.microsoft.com/en-us/sql/relational-databases/import-export/use-a-format-file-to-bulk-import-data-sql-server

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 1970-01-01
      • 2018-04-17
      • 2012-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多