下面是详细讲解"使用C#将Excel数据转换为DataTable"的完整攻略:
准备工作
在使用C#处理Excel文件的时候,我们需要先安装Microsoft.Office.Interop.Excel
和Microsoft.Office.Core
这两个组件。可以通过Nuget包管理器安装这两个组件。
方法一:使用OleDb读取Excel数据
这种方法适用于xls
和xlsx
文件,具体实现步骤如下:
- 使用
OleDbConnection
对象连接Excel文件
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=yourExcelFilePath;Extended Properties=Excel 12.0;";
OleDbConnection connection = new OleDbConnection(connectionString);
connection.Open();
- 使用
OleDbDataAdapter
对象读取Excel数据
string sqlCommand = "SELECT * FROM [Sheet1$]";
OleDbDataAdapter adapter = new OleDbDataAdapter(sqlCommand, connection);
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
- 释放资源
adapter.Dispose();
connection.Close();
示例:
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=yourExcelFilePath;Extended Properties='Excel 12.0;HDR=YES;'";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
connection.Open();
string commandString = "SELECT * FROM [Sheet1$]";
using (OleDbDataAdapter adapter = new OleDbDataAdapter(commandString, connection))
{
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
// 可以使用dataTable进行操作
}
}
方法二:使用EPPlus读取Excel数据
EPPlus是一个用于操作xlsx
格式Excel文件的开源库,可以通过Nuget包管理器安装。具体实现步骤如下:
- 使用
ExcelPackage
对象打开Excel文件
string filePath = "yourExcelFilePath";
ExcelPackage package = new ExcelPackage(new FileInfo(filePath));
- 获取Excel表格中的数据
ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
DataTable dataTable = new DataTable();
for (int col = 1; col <= worksheet.Dimension.End.Column; col++)
{
dataTable.Columns.Add(worksheet.Cells[1, col].Value.ToString());
}
for (int row = 2; row <= worksheet.Dimension.End.Row; row++)
{
DataRow dataRow = dataTable.NewRow();
for (int col = 1; col <= worksheet.Dimension.End.Column; col++)
{
dataRow[col - 1] = worksheet.Cells[row, col].Value;
}
dataTable.Rows.Add(dataRow);
}
- 释放资源
package.Dispose();
示例:
string filePath = "yourExcelFilePath";
ExcelPackage package = new ExcelPackage(new FileInfo(filePath));
ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
DataTable dataTable = new DataTable();
for (int col = 1; col <= worksheet.Dimension.End.Column; col++)
{
dataTable.Columns.Add(worksheet.Cells[1, col].Value.ToString());
}
for (int row = 2; row <= worksheet.Dimension.End.Row; row++)
{
DataRow dataRow = dataTable.NewRow();
for (int col = 1; col <= worksheet.Dimension.End.Column; col++)
{
dataRow[col - 1] = worksheet.Cells[row, col].Value;
}
dataTable.Rows.Add(dataRow);
}
package.Dispose();
// 可以使用dataTable进行操作
以上就是使用C#将Excel数据转换为DataTable的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#把EXCEL数据转换成DataTable - Python技术站