如何使用 LINQ 在 C# 中将数据从 Excel sheet 导入数据库?
How to import data from Excel sheet to database in c# with LINQ?
我在 Excel sheet 中有三列,例如 id、name、family。
我正在使用 LINQ,我需要使用编码指令将数据从 Excel 导入数据库,我在 Excel sheet
中有 6500 条记录
您将需要导入和引用 OpenXML,打开 sheets,sheet,工作 sheet,IIRC - 然后将您的列解析为字符串。
然后创建一个 SQL 数据适配器和所有这些,使用 ConnectionString 或 SQLConnection,启动参数化查询,它在数据库中。
您可以使用下面的代码获取所有数据,然后将DataTable 转换为List。要使下面的示例正常工作,您需要 Microsoft Access Database Engine 2010 Redistributable
应该安装
public static DataTable ReadExcelWithoutOffice(string filePath)
{
var connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0;IMEX=1;HDR=YES;TypeGuessRows=0;FirstRowHasNames=true;ImportMixedTypes=Text\""; ;
using (var conn = new OleDbConnection(connectionString))
{
conn.Open();
var sheets = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT * FROM [" + sheets.Rows[0]["TABLE_NAME"].ToString() + "] ";
var adapter = new OleDbDataAdapter(cmd);
var ds = new DataSet();
adapter.Fill(ds);
return ds.Tables[0];
}
}
}
谢谢大家的回答。
我发现了我的问题。这是代码:
string pach = @"D:\C# Projects\ex.xlsx";
var excelData = new ExcelQueryFactory(pach);
var data = from x in excelData.Worksheet<xlsdata>("MySheet")
select x;
DataClassesDataContext db = new DataClassesDataContext();
foreach (var d in data)
{
db.tbl_infos.InsertOnSubmit(new tbl_info
{
id = d.id,
name = d.name,
family = d.family
});
}
db.SubmitChanges();
我在 Excel sheet 中有三列,例如 id、name、family。
我正在使用 LINQ,我需要使用编码指令将数据从 Excel 导入数据库,我在 Excel sheet
您将需要导入和引用 OpenXML,打开 sheets,sheet,工作 sheet,IIRC - 然后将您的列解析为字符串。
然后创建一个 SQL 数据适配器和所有这些,使用 ConnectionString 或 SQLConnection,启动参数化查询,它在数据库中。
您可以使用下面的代码获取所有数据,然后将DataTable 转换为List。要使下面的示例正常工作,您需要 Microsoft Access Database Engine 2010 Redistributable 应该安装
public static DataTable ReadExcelWithoutOffice(string filePath)
{
var connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0;IMEX=1;HDR=YES;TypeGuessRows=0;FirstRowHasNames=true;ImportMixedTypes=Text\""; ;
using (var conn = new OleDbConnection(connectionString))
{
conn.Open();
var sheets = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
using (var cmd = conn.CreateCommand())
{
cmd.CommandText = "SELECT * FROM [" + sheets.Rows[0]["TABLE_NAME"].ToString() + "] ";
var adapter = new OleDbDataAdapter(cmd);
var ds = new DataSet();
adapter.Fill(ds);
return ds.Tables[0];
}
}
}
谢谢大家的回答。
我发现了我的问题。这是代码:
string pach = @"D:\C# Projects\ex.xlsx";
var excelData = new ExcelQueryFactory(pach);
var data = from x in excelData.Worksheet<xlsdata>("MySheet")
select x;
DataClassesDataContext db = new DataClassesDataContext();
foreach (var d in data)
{
db.tbl_infos.InsertOnSubmit(new tbl_info
{
id = d.id,
name = d.name,
family = d.family
});
}
db.SubmitChanges();