C#批量Excel表导入datatable
时间: 2023-09-03 21:06:18 浏览: 105
c# 将Datatable数据导出到Excel表格中
您可以使用以下方法批量导入 Excel 表到 DataTable 中:
```csharp
using System.Data;
using System.Data.OleDb;
// ...
public DataTable ImportExcelToDataTable(string filePath)
{
string connectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={filePath};Extended Properties='Excel 12.0;HDR=YES;IMEX=1;'";
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
conn.Open();
DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
if (dt == null)
return null;
var excelSheets = new List<string>();
foreach (DataRow row in dt.Rows)
{
string sheetName = row["TABLE_NAME"].ToString();
if (sheetName.EndsWith("$"))
excelSheets.Add(sheetName);
}
if (excelSheets.Count == 0)
return null;
string sheet = excelSheets[0];
OleDbCommand cmd = new OleDbCommand($"SELECT * FROM [{sheet}]", conn);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataTable dataTable = new DataTable();
da.Fill(dataTable);
return dataTable;
}
}
```
您可以调用这个方法,将 Excel 文件的路径作为参数传递给它。它将返回一个包含 Excel 表数据的 DataTable 对象。请确保您已经安装了适当的 Microsoft ACE OLEDB 数据提供程序。
请注意,此方法假设您的 Excel 表中的第一行是列名。如果不是,请将连接字符串中的 `HDR=YES` 修改为 `HDR=NO`,并在导入数据时处理列名。
希望对您有帮助!
阅读全文