c#将Excel数据导入到数据库的实现代码

下面是详细讲解“C#将Excel数据导入到数据库的实现代码”的完整攻略:

步骤一:准备工作

在使用C#程序实现将Excel数据导入到数据库前,我们需要确保以下条件:

  1. 安装Visual Studio软件,版本不一定要求,因为该功能在各个版本中都可以实现。

  2. 引用适用于Excel数据的组件,一般为“Microsoft.Office.Interop.Excel” 数据库组件,可以在“NuGet Package Manager”中搜索安装。

接下来,我们要做的是创建两个类:用于存放每列数据的“Model”类和用于导入数据的“Service”类。

步骤二:创建Model类

public class ExcelModel
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Gender { get; set; }
}

上述代码用于存储从Excel表格中读取出来的三列数据。如果你的Excel表格中除了这些列以外还有其他列,可以自行在Model类中添加。

步骤三:创建Service类

首先,我们需要引入“Microsoft.Office.Interop.Excel”命名空间。在该类中,我们将写入读取Excel的方法,并将读出的数据添加到我们在第二步创建的Model类中。

以下是一个示例代码:

public class ExcelService
{
    public static List<ExcelModel> ReadExcelFile(string filePath, string sheetName)
    {
        List<ExcelModel> excelData = new List<ExcelModel>();

        Application excelApp = new Application();
        Workbook excelWorkbook = excelApp.Workbooks.Open(filePath);
        Worksheet excelWorksheet = excelWorkbook.Sheets[sheetName];

        Range excelRange = excelWorksheet.UsedRange;
        int rowCount = excelRange.Rows.Count;
        int columnCount = excelRange.Columns.Count;

        for (int row = 2; row <= rowCount; row++)
        {
            ExcelModel model = new ExcelModel();
            for (int column = 1; column <= columnCount; column++)
            {
                object value = (excelRange.Cells[row, column] as Range).Value2;

                switch (column)
                {
                    case 1:
                        model.Name = value.ToString();
                        break;

                    case 2:
                        model.Age = int.Parse(value.ToString());
                        break;

                    case 3:
                        model.Gender = value.ToString();
                        break;
                }
            }
            excelData.Add(model);
        }

        excelWorkbook.Close();
        excelApp.Quit();

        return excelData;
    }
}

在该类中,我们创建了一个“ReadExcelFile”方法,该方法接收Excel文件路径和工作表名称作为输入参数。该方法将返回一个包含从Excel中读取的数据的“List”类型的值。

在该方法中,我们使用Open方法打开Excel文件,并使用“Worksheets”属性打开指定工作表。然后,我们使用“UsedRange”属性获取工作表中已使用的行数和列数。

接着,我们使用一个for循环遍历“UsedRange”中的每一列,将获取的值存储在Model类的属性中,最终将数据添加到List集合中并返回该集合。

步骤四:添加导入方法

下面是我们的示例代码:

public class ExcelDBService
{
    public static bool ImportExcelDataToDB(string filePath, string sheetName)
    {
        SqlConnectionStringBuilder connectionStringBuilder = new SqlConnectionStringBuilder();
        connectionStringBuilder.DataSource = "your server name";
        connectionStringBuilder.InitialCatalog = "your database name";
        connectionStringBuilder.UserID = "your user id";
        connectionStringBuilder.Password = "your password";

        string connectionString = connectionStringBuilder.ConnectionString;
        List<ExcelModel> excelData = ExcelService.ReadExcelFile(filePath, sheetName);

        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            conn.Open();
            using (SqlTransaction transaction = conn.BeginTransaction())
            {
                try
                {
                    string sql = "INSERT INTO ExcelData(Name, Age, Gender) VALUES(@Name, @Age, @Gender)";
                    SqlCommand cmd = new SqlCommand(sql, conn);
                    cmd.Transaction = transaction;

                    foreach (ExcelModel model in excelData)
                    {
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("@Name", model.Name);
                        cmd.Parameters.AddWithValue("@Age", model.Age);
                        cmd.Parameters.AddWithValue("@Gender", model.Gender);
                        cmd.ExecuteNonQuery();
                    }

                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    return false;
                }
            }
        }
        return true;
    }
}

在该代码片段中,我们创建了一个方法“ImportExcelDataToDB”,该方法接收Excel文件路径和工作表名称作为输入参数,并返回一个布尔值。

在该方法中,我们首先为SQL Server数据库连接字符串设置了各个必要的属性。接着,我们使用“ReadExcelFile”方法获取Excel数据并将其存储在一个List集合中。该方法将通过ForEach循环添加给定的Excel模型类的属性,然后将它们插入到数据库中的ExcelData表中。在整个过程中,我们会为每个excel数据行创建一个SqlCommand,最后检查事务中是否存在任何错误并相应地提交或回滚该事务。

步骤五:测试代码

测试代码如下:

static void Main(string[] args)
{
    string filePath = @"your excel file path";
    string sheetName = "Sheet1";

    bool result = ExcelDBService.ImportExcelDataToDB(filePath, sheetName);
    Console.WriteLine(result ? "成功将Excel数据导入数据库" : "在将Excel数据导入数据库期间发生错误");
}

在该代码段中,我们只是在控制台应用程序中使用ImportExcelDataToDB方法,并在其中传递Excel文件路径和需要导入的工作表名称。在该方法调用后,我们打印一个简单的成功或失败消息。

至此,我们详细讲解了“C#将Excel数据导入到数据库的实现代码”的完整攻略,包含两条示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#将Excel数据导入到数据库的实现代码 - Python技术站

(1)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • c#制作屏幕保护程序步骤(字幕屏保)

    以下是制作 C# 字幕屏保程序的完整攻略: 步骤1:创建新项目 首先,打开 Visual Studio 并创建一个新项目。在新项目对话框中,选择 “Windows Forms 应用程序”,然后在项目名称和位置部分命名并选择项目位置。 步骤2:窗口调整 在创建窗口后,需要对窗口进行一些调整以确保它适合作为屏幕保护程序。在窗口设计器中选择窗口控制,右键单击然后选…

    C# 2023年6月7日
    00
  • C# 用什么方法将BitConverter.ToString产生字符串再转换回去

    要将BitConverter.ToString产生的字符串再转换回为二进制数据,可以使用以下两种方法: 1. 使用BitConverter.GetBytes和Convert.FromHexString 可以使用BitConverter.GetBytes将一个十六进制字符串转换为等效的字节数组,然后使用Convert.FromHexString将该数组转换为二…

    C# 2023年6月7日
    00
  • C# XML字符串包含特殊字符的处理转换方法小结

    C#XML字符串包含特殊字符的处理转换方法小结 当我们需要在C#中处理XML字符串时,有时候会碰到字符串中包含特殊字符而导致解析出错的情况。在这种情况下,我们需要对字符串进行一定的转换处理。本文将总结一些常见的处理方法,并提供两条示例来说明。 方法一:使用XmlDocument对象进行处理 可以使用C#的XmlDocument对象来解析XML文档并处理XML…

    C# 2023年5月15日
    00
  • C#中截取字符串的的基本方法详解

    C#中截取字符串的基本方法详解 前言 C#中操作字符串是开发中必不可少的一项技能,对字符串截取更是至关重要。本文将详细介绍C#中截取字符串的基本方法,希望能对大家有所帮助。 Substring方法 C#中内置的字符串截取方法是Substring。它可以通过指定起始位置和截取长度来截取字符串。 下面是一个示例: string str = "Hello…

    C# 2023年6月8日
    00
  • c#中的常用ToString()方法总结

    C#中的常用ToString()方法总结 在C#编程中,ToString()方法是十分常用的方法之一。它用于将一个对象转化为字符串表示形式。本篇攻略将详细讲解C#中常用的ToString()方法及其用法。 ToString()方法的基本用法 在C#中,ToString()方法是定义在Object类中的虚方法,它可以被任意类型重写。因为所有类型都继承自Obje…

    C# 2023年6月1日
    00
  • asp.net(c#)开发中的文件上传组件uploadify的使用方法(带进度条)

    下面我将为您详细讲解asp.net(c#)开发中文件上传组件uploadify的使用方法(带进度条)的完整攻略。 一. 简介 uploadify是一款基于jQuery的文件上传插件,支持多文件上传,支持进度条显示。 二. 安装与引入 下载uploadify:在官网 https://www.uploadify.com/ 下载uploadify并解压文件。 引入…

    C# 2023年6月1日
    00
  • 基于NPOI用C#开发的Excel以及表格设置

    基于NPOI用C#开发的Excel以及表格设置攻略 NPOI是一款开源的基于.NET平台的Excel文件读写库,可以方便地操作Excel文件。本攻略将介绍如何通过NPOI用C#来实现Excel的读写和表格设置。 一、安装NPOI库 1.新建项目并打开NuGet包管理控制台; 2.在NuGet控制台中输入“Install-Package NPOI”并确认; 3…

    C# 2023年5月15日
    00
  • C#使用NPOI导入Excel的方法详解

    下面详细讲解“C#使用NPOI导入Excel的方法详解”的完整攻略。 安装NPOI 要使用NPOI,需要先安装它。可以通过NuGet包管理器搜索和安装NPOI。 导入Excel的方法 首先,需要先读取Excel文件。可以使用NPOI中的HSSFWorkbook或XSSFWorkbook类来打开Excel文件。 using NPOI.HSSF.UserMode…

    C# 2023年6月7日
    00
合作推广
合作推广
分享本页
返回顶部