C#读取Excel

本文介绍了一种使用C#代码从Excel文件中读取数据并填充到DataTable的方法。通过OLE DB连接,可以指定Excel文件路径及工作表名称来获取所有数据。此过程包括设置连接字符串、定义SQL查询语句、创建OleDbCommand对象、使用OleDbDataAdapter填充DataSet,并最终返回数据表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

private DataTable getTable()
{
    try
    {

//   path即是excel文档的路径。

        string conn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= Path"+";Extended Properties=Excel 8.0;";

        //Sheet1为excel中表的名字
        string sql = "select * from ["Sheet1$]";
        OleDbCommand cmd = new OleDbCommand(sql, new OleDbConnection(conn));
        OleDbDataAdapter ad = new OleDbDataAdapter(cmd);
        DataSet ds = new DataSet();
        ad.Fill(ds);             
        return ds.Tables[0];
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
        return null;
    }

### 使用C#读取Excel文件的方法和推荐库 在C#中,读取Excel文件可以通过多种方式实现,包括使用.NET Framework内置功能或第三方库。以下是几种常见的方法及其示例代码。 #### 方法一:使用Spire.XLS for .NET Spire.XLS for .NET 是一个功能强大的免费库,支持读取、写入和操作Excel文件。以下是一个简单的示例代码,展示如何使用该库读取Excel文件中的数据[^3]。 ```csharp using Spire.Xls; namespace ReadExcelData { class Program { static void Main(string[] args) { // 创建Workbook类的对象 Workbook wb = new Workbook(); // 加载Excel文件 wb.LoadFromFile("示例.xlsx"); // 获取第一张工作表 Worksheet sheet = wb.Worksheets[0]; // 获取包含数据的单元格区域 CellRange locatedRange = sheet.AllocatedRange; // 遍历数据区域中的行和列 for (int i = 0; i < locatedRange.Rows.Length; i++) { for (int j = 0; j < locatedRange.Rows[i].ColumnCount; j++) { // 获取单元格数据并输出 Console.Write(locatedRange[i + 1, j + 1].Value + " "); } Console.WriteLine(); } } } } ``` #### 方法二:使用EPPlus库 EPPlus 是另一个流行的开源库,用于处理Excel文件(仅支持.xlsx格式)。以下是使用EPPlus读取Excel文件的示例代码[^4]。 ```csharp using OfficeOpenXml; using System.IO; namespace EPPlusExample { class Program { static void Main(string[] args) { using (var package = new ExcelPackage(new FileInfo("示例.xlsx"))) { var worksheet = package.Workbook.Worksheets[0]; int rowCount = worksheet.Dimension.Rows; int colCount = worksheet.Dimension.Columns; for (int row = 1; row <= rowCount; row++) { for (int col = 1; col <= colCount; col++) { Console.Write(worksheet.Cells[row, col].Text + " "); } Console.WriteLine(); } } } } } ``` #### 方法三:使用OleDb连接 通过OleDb连接,可以将Excel文件视为数据库进行查询。此方法适用于.xls和.xlsx文件,但需要安装Microsoft ACE OLEDB驱动程序[^2]。 ```csharp using System.Data.OleDb; using System.Data; namespace OleDbExample { class Program { static void Main(string[] args) { string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=示例.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES'"; using (OleDbConnection connection = new OleDbConnection(connectionString)) { connection.Open(); string query = "SELECT * FROM [Sheet1$]"; using (OleDbDataAdapter adapter = new OleDbDataAdapter(query, connection)) { DataTable dataTable = new DataTable(); adapter.Fill(dataTable); foreach (DataRow row in dataTable.Rows) { foreach (var item in row.ItemArray) { Console.Write(item.ToString() + " "); } Console.WriteLine(); } } } } } } ``` ### 总结 以上介绍了三种常用的方法来读取Excel文件:使用Spire.XLS for .NET、EPPlus库以及OleDb连接。每种方法都有其适用场景和优缺点,具体选择取决于项目需求和技术栈。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值