关于“C#使用oledb读取Excel表格内容到DataTable的方法”的攻略,我可以这样来进行详细讲解。
1. 需求
我们的需求是读取Excel表格的内容,并将其存储到DataTable中,以便于进行后续的操作和处理。
2. 准备工作
需要安装Microsoft ACE OLEDB运行库才能正常使用,还需要添加System.Data命名空间。
3. 读取Excel表
3.1 初始化oledb连接字符串
// excel文件路径
string filePath = "D:\\test.xlsx";
// 定义连接字符串
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1'";
3.2 创建oledb连接对象
// 创建oledb连接对象
OleDbConnection connection = new OleDbConnection(connectionString);
3.3 打开连接
// 打开连接
connection.Open();
3.4 获取数据源的所有表名
// 获取数据源的所有表名
DataTable schemaTable = connection.GetSchema("Tables");
3.5 选择Excel表
// 选择Excel表
string sheetName = "Sheet1$"; // 选择第一个表格
string selectCommand = "SELECT * FROM [" + sheetName + "]"; // 查询语句
OleDbDataAdapter adapter = new OleDbDataAdapter(selectCommand, connection);
3.6 填充数据到DataTable对象中
// 填充数据到DataTable对象中
DataTable table = new DataTable();
adapter.Fill(table);
3.7 关闭连接
// 关闭连接
connection.Close();
好了,至此,我们就成功地将Excel表格的内容读取到了DataTable中。
4. 示例
以下是两个示例:
示例一:将DataTable内容输出到控制台
Console.WriteLine("输出DataTable内容:");
foreach (DataRow row in table.Rows)
{
foreach (DataColumn col in table.Columns)
{
Console.Write(row[col] + "\t");
}
Console.WriteLine();
}
示例二:将DataTable内容输出到一个新Excel表格中
// 输出到新表格中
string outputFilePath = "D:\\new.xlsx";
string outputSheetName = "Sheet1";
// 创建新的Excel文件
File.WriteAllBytes(outputFilePath, new byte[0]);
var excel = new ExcelPackage(new FileInfo(outputFilePath));
// 获取“Sheet1”工作表
var sheet = excel.Workbook.Worksheets.Add(outputSheetName);
// 输出标题行
int row = 1, col = 1;
foreach (DataColumn column in table.Columns)
{
sheet.Cells[row, col++].Value = column.ColumnName;
}
// 输出数据行
foreach (DataRow r in table.Rows)
{
row += 1; // 移动到下一行
col = 1; // 列归1
foreach (DataColumn c in table.Columns)
{
sheet.Cells[row, col++].Value = r[c];
}
}
// 保存修改并关闭Excel文件
excel.Save();
excel.Dispose();
以上就是关于“C#使用oledb读取Excel表格内容到DataTable的方法”的详细介绍和代码示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#使用oledb读取excel表格内容到datatable的方法 - Python技术站