如何使用 C# 将多个 Excel 工作表导入 SQL 表?

Posted

技术标签:

【中文标题】如何使用 C# 将多个 Excel 工作表导入 SQL 表?【英文标题】:How to import multiple Excel sheets into SQL tables using C#? 【发布时间】:2019-11-02 03:20:43 【问题描述】:

我需要通过单击 C# 按钮控件将多个 Excel 工作表导入多个 SQL 表(根据它们的表)。

【问题讨论】:

为了让我们帮助您,您需要告诉我们您已经尝试过什么,以及其中哪一部分有问题。我建议使用tour,阅读How to Ask,如果可以的话,提供minimal reproducible example。事实上,您的问题特别广泛。 @Diado,很抱歉没有提供正确的信息给您带来不便,我尝试使用 oldbeComand 导入,但我一次只能插入一张表 【参考方案1】:

首先请安装 nuget Spire.XLS,例如 'Install-Package Spire.XLS -Version 9.6.7' 现在您可以使用下面的代码 你应该 使用 Spire.xls 在你的命名空间中

 public static DataTable ReadExcelFromPath(string path,int sheetNumber)
    
        DataTable dt = null;
        try
        
            //Load the Excel file
            using (Workbook workbook = new Workbook())
            
                workbook.LoadFromFile(path);

                //Get the  worksheet
                Worksheet sheet = workbook.Worksheets[sheetNumber];
                //Export data to data table
                dt = sheet.ExportDataTable();

            
        
        catch (Exception ex)
        
            throw new Exception(ex.ToString());

        
        return dt;
    


 public static List<DataTable> ReadAllExcelSheetFromPath(string path)
    
        List<DataTable> dt_list = new List<DataTable>();
        try
        
            //Load the Excel file
            using (Workbook workbook = new Workbook())
            
                workbook.LoadFromFile(path);
                for (int i = 0; i < workbook.Worksheets.Count; i++)
                 //Get the first worksheet
                    Worksheet sheet = workbook.Worksheets[i];
                    //Export data to data table
                    dt_list.Add( sheet.ExportDataTable());
                

            
        
        catch (Exception ex)
        
            throw new Exception(ex.ToString());

        
        return dt_list;
    

【讨论】:

【参考方案2】:

使用 EPPlus nuget 包。

文档链接: https://github.com/JanKallman/EPPlus/wiki/Reading-and-Writing-Data

【讨论】:

meta.stackexchange.com/questions/8231/… 请查看@Diado 的链接以获取不赞成票的解释。

以上是关于如何使用 C# 将多个 Excel 工作表导入 SQL 表?的主要内容,如果未能解决你的问题,请参考以下文章

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

C# winform中如何通过新建EXCEL工作簿把SQL SERVER数据库中多张表导入EXCEL不同的sheet当中啊

如何使用 C# 从 DataSet 创建包含多个工作表的 excel 文件

如何使用通配符导入多个具有相似工作表名称的 Excel 文件?

如何将SQL Server中多个表的数据一次性返回到一张EXCEL工作表(Sheet)中

C# winform 中如何导入Excel