C#实现读取Excel文件并将数据写入数据库和DataTable
using Spire.Xls;
using System.Data.OleDb;
class Program
{
static void Main(string[] args)
{
// 设置Excel文件路径
string excelFilePath = "Sample.xlsx";
// 设置Access数据库文件路径
string accessDbFilePath = "Sample.accdb";
// 加载Excel文件
Workbook workbook = new Workbook();
workbook.LoadFromFile(excelFilePath);
// 获取第一个工作表
Worksheet worksheet = workbook.Worksheets[0];
// 使用工作表名称作为表名
string tableName = worksheet.Name;
// 获取第一行作为列名
CellRange headerRange = worksheet.Rows[0];
string[] columnNames = new string[headerRange.Columns.Length];
for (int i = 0; i < headerRange.Columns.Length; i++)
{
columnNames[i] = headerRange.Columns[i].Value.Replace(" ", "_");
}
// 连接到Access数据库
string connectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={accessDbFilePath};Persist Security Info=False;";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
connection.Open();
// 创建表
string createTableQuery = $"CREATE TABLE [{tableName}] ({string.Join(", ", columnNames.Select(c => $"[{c}] Memo"))})";
using (OleDbCommand createTableCommand = new OleDbCommand(createTableQuery, connection))
{
createTableCommand.ExecuteNonQuery();
}
// 插入数据
string insertQuery = $"INSERT INTO [{tableName}] ({string.Join(", ", columnNames.Select(c => $"[{c}]"))}) VALUES ({string.Join(", ", columnNames.Select(c => $"@{c}"))})";
using (OleDbCommand insertCommand = new OleDbCommand(insertQuery, connection))
{
foreach (CellRange row in worksheet.Rows.Cast().Skip(1))
{
for (int i = 0; i < row.Columns.Length; i++)
{
insertCommand.Parameters.AddWithValue($"@{columnNames[i]}", row.Columns[i].Value);
}
insertCommand.ExecuteNonQuery();
insertCommand.Parameters.Clear();
}
}
connection.Close();
workbook.Dispose();
}
}
}
- .NET Core系列之MemoryCache 初识
- 007手机一键Root(安机网一键Root) v3.0 官方最新版 一键ROOT您的Android手机
- 12306密码被盗了怎么办?12306密码外泄解决方法
- 12个字的qq网名
- 150M迷你型无线路由器怎么设置?
- 192.168.1.1打不开怎么办?路由器192.168.1.1打不开的原因以及解决办法
- 2011年电子报合订本 电子报 编辑部 中文 PDF版 [84M]
- 2015年1月15日小米新旗舰发布会现场图文直播
- 2016.3.1vivo Xplay5新品发布会现场视频直播 优酷直播
- 2016华为P9发布会视频直播地址 4月15日华为P9国行发布会直播