首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用c#读取excel文件中的特定列并添加到查询中

使用C#读取Excel文件中的特定列并添加到查询中,可以通过使用第三方库来实现。以下是一个示例代码,演示了如何使用C#和EPPlus库来读取Excel文件中的特定列数据并添加到查询中:

代码语言:txt
复制
using System;
using System.Data;
using System.Data.SqlClient;
using OfficeOpenXml;

public class ExcelReader
{
    public DataTable ReadExcelData(string filePath, string sheetName, string columnName)
    {
        using (var package = new ExcelPackage(new System.IO.FileInfo(filePath)))
        {
            var worksheet = package.Workbook.Worksheets[sheetName];
            var columnData = new DataTable();
            columnData.Columns.Add(columnName);

            for (int row = 2; row <= worksheet.Dimension.End.Row; row++)
            {
                var cellValue = worksheet.Cells[row, GetColumnIndex(worksheet, columnName)].Value;
                if (cellValue != null)
                {
                    columnData.Rows.Add(cellValue.ToString());
                }
            }

            return columnData;
        }
    }

    private int GetColumnIndex(ExcelWorksheet worksheet, string columnName)
    {
        for (int col = 1; col <= worksheet.Dimension.End.Column; col++)
        {
            var cellValue = worksheet.Cells[1, col].Value;
            if (cellValue != null && cellValue.ToString().Equals(columnName, StringComparison.OrdinalIgnoreCase))
            {
                return col;
            }
        }

        throw new ArgumentException($"Column '{columnName}' not found in the Excel sheet.");
    }
}

public class DatabaseQuery
{
    public void AddDataFromExcelToQuery(DataTable excelData)
    {
        // 假设你已经有一个数据库连接字符串
        string connectionString = "your_connection_string";

        using (var connection = new SqlConnection(connectionString))
        {
            connection.Open();

            foreach (DataRow row in excelData.Rows)
            {
                string value = row[0].ToString(); // 假设只有一列数据

                // 构建查询语句,将value添加到查询中
                string query = $"INSERT INTO YourTable (ColumnName) VALUES ('{value}')";

                using (var command = new SqlCommand(query, connection))
                {
                    command.ExecuteNonQuery();
                }
            }
        }
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        string filePath = "your_excel_file_path";
        string sheetName = "your_sheet_name";
        string columnName = "your_column_name";

        var excelReader = new ExcelReader();
        var excelData = excelReader.ReadExcelData(filePath, sheetName, columnName);

        var databaseQuery = new DatabaseQuery();
        databaseQuery.AddDataFromExcelToQuery(excelData);

        Console.WriteLine("Data added to the query successfully.");
    }
}

上述代码中,使用了EPPlus库来读取Excel文件。首先,通过ReadExcelData方法读取指定的Excel文件中的特定列数据,并将其存储在一个DataTable对象中。然后,使用AddDataFromExcelToQuery方法将这些数据添加到查询中,并执行插入操作。

请注意,上述代码仅为示例,实际应用中可能需要根据具体情况进行修改和优化。另外,为了使代码更加健壮和安全,建议使用参数化查询来防止SQL注入攻击。

对于C#读取Excel文件的第三方库,腾讯云没有提供相关产品。你可以使用EPPlus库或其他类似的库来实现该功能。EPPlus是一个开源库,用于在.NET中读取和写入Excel文件。你可以在以下链接中找到EPPlus库的详细信息和使用示例:

EPPlus库介绍和使用示例:EPPlus GitHub

希望以上信息对你有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的结果

领券