如何将包含数百张工作表的 excel 文件导入数据库以在 C# 项目中使用?

Posted

技术标签:

【中文标题】如何将包含数百张工作表的 excel 文件导入数据库以在 C# 项目中使用?【英文标题】:How to import an excel file with hundreds of sheets to a database to use in C# project? 【发布时间】:2020-06-22 14:46:35 【问题描述】:

我对 C# 和编程很陌生。 我有一个超过 100 张的 excel 文件。 在每张表中,我有 200 多行数据(每行 4 列)。 我需要使用 C# 项目中每个工作表中的数据。 我是否需要使用数据库来上传工作表中的数据?如果是,使用什么数据库以及如何将 Excel 中的值放入该数据库以便在 C# 之后更轻松地使用它们? 我阅读了谷歌以找到我该怎么做,但我发现了很多东西,但我不明白。 谢谢!

【问题讨论】:

我会使用 BulkCopy 将工作表复制到数据库中。 【参考方案1】:

有几种可能的解决方案:

    使用库访问 Excel。有多种选择,但ExcelDataReader 似乎是下载次数最多的选择之一。 Use ADO.Net to access the excel file。这会将 excel 文件视为数据库,除非您熟悉 SQL,否则可能会有点难以使用。 Use excel interop library。这需要在使用的机器上安装 excel。

【讨论】:

我不推荐使用 Excel 互操作。 MS Office Interop 很慢,甚至微软也不推荐在服务器端使用 Interop。有关详细信息,请参阅 Microsoft 在 why not to use OLE Automation 上所说的内容。【参考方案2】:

您不需要数据库。您可以使用OpenXML 在 C# 中导入您的数据。

您可能会发现很多关于如何使用 OpenXML 导入数据的示例,这只是其中之一:From Excel to DataTable in C# with Open XML

您还可以使用其他开源 Excel 库。 OpenXML 来自 Microsoft,专为处理 Excel 文件而构建。

【讨论】:

以上是关于如何将包含数百张工作表的 excel 文件导入数据库以在 C# 项目中使用?的主要内容,如果未能解决你的问题,请参考以下文章

在excel中另存为宏

将同一工作簿中的多个 Excel 工作表复合到一张工作表中

如何将EXCEl中多张Sheet工作表转换成一个PDF

Excel 一张工作表变动后,怎么自动更新另一张表中的数据

Excel实现二级菜单联动

如何将EXCEl中多张Sheet工作表转换成一个PDF