使用C#读取Excel文件中的特定列并添加到查询中,可以通过使用第三方库来实现。以下是一个示例代码,演示了如何使用C#和EPPlus库来读取Excel文件中的特定列数据并添加到查询中:
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
方法将这些数据添加到查询中,并执行插入操作。
领取专属 10元无门槛券
手把手带您无忧上云