c# 将excel导入 sqlite
要将Excel文件导入SQLite数据库,你可以使用以下步骤:
- 使用
System.Data.SQLite
库来操作SQLite数据库。 - 使用
Microsoft.Office.Interop.Excel
或第三方库(如ClosedXML
或EPPlus
)来读取Excel文件。 - 创建SQLite数据库和表,如果它们不存在的话。
- 遍历Excel中的行和列,将数据插入到SQLite数据库中对应的表里。
以下是一个简单的示例代码,演示如何使用ClosedXML
库将Excel导入SQLite:
using System;
using System.Data.SQLite;
using ClosedXML.Excel;
public class ExcelToSQLiteConverter
{
public static void ImportExcelToSQLite(string excelFilePath, string sqliteFilePath, string tableName)
{
// 加载Excel文件
var workbook = new XLWorkbook(excelFilePath);
var worksheet = workbook.Worksheet(1);
var rows = worksheet.RangeUsed().RowsUsed();
// 连接到SQLite数据库(如果不存在则创建)
var connectionString = $"Data Source={sqliteFilePath};Version=3;";
using (var connection = new SQLiteConnection(connectionString))
{
connection.Open();
// 创建表(如果不存在)
using (var command = connection.CreateCommand())
{
command.CommandText = $"CREATE TABLE IF NOT EXISTS {tableName} (";
foreach (var cell in worksheet.Row(1))
{
command.CommandText += $"{cell.Value.ToString()} TEXT, ";
}
command.CommandText = command.CommandText.TrimEnd(' ', ',') + ");";
command.ExecuteNonQuery();
}
// 插入数据
using (var command = connection.CreateCommand())
{
command.CommandText = $"INSERT INTO {tableName} VALUES (";
foreach (var cell in worksheet.Row(1))
{
command.CommandText += "@"; // 参数占位符
}
command.CommandText = command.CommandText.TrimEnd(' ', ',') + ");";
foreach (var row in rows)
{
if (row.RowNumber() == 1) continue; // 跳过表头
foreach (var cell in row.Cells())
{
var parameter = command.CreateParameter();
parameter.ParameterName = $"@p{cell.Address.ColumnNumber - 1}";
parameter.Value = cell.Value;
command.Parameters.Add(parameter);
}
co
评论已关闭