读取Excel数据到DataTable 在程序开发中,读取Excel数据到DataTable是一种常见的数据交换方式。通常情况下,我们需要将Excel表格中的数据读取到DataTable中,以便于后续的数据处理和分析。 在这个过程中,我们可以使用OleDbConnection来连接Excel文件,并使用GetOleDbSchemaTable方法来获取Excel文件中的工作簿列表。然后,我们可以遍历工作簿列表,读取每个工作簿中的数据,并将其保存到DataTable中。 下面是读取Excel数据到DataTable的示例代码: ```csharp public DataTable GetExcelData(string astrFileName) { string strSheetName = GetExcelWorkSheets(astrFileName)[0].ToString(); return GetExcelData(astrFileName, strSheetName); } public ArrayList GetExcelWorkSheets(string strFilePath) { ArrayList alTables = new ArrayList(); OleDbConnection odn = new OleDbConnection(GetExcelConnection(strFilePath)); odn.Open(); DataTable dt = new DataTable(); dt = odn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); if (dt == null) { throw new Exception("无法获取指定 Excel 的架构。"); } foreach (DataRow dr in dt.Rows) { string tempName = dr["Table_Name"].ToString(); int iDolarIndex = tempName.IndexOf('$'); if (iDolarIndex > 0) { tempName = tempName.Substring(0, iDolarIndex); } // 修正了 Excel2003 中某些工作薄名称为汉字的表无法正确识别的 BUG。 if (tempName[0] == '\'') { if (tempName[tempName.Length - 1] == '\'') { tempName = tempName.Substring(1, tempName.Length - 2); } else { tempName = tempName.Substring(1, tempName.Length - 1); } } if (!alTables.Contains(tempName)) { alTables.Add(tempName); } } odn.Close(); if (alTables.Count == 0) { throw new Exception("无法获取指定 Excel 的工作簿信息。"); } return alTables; } ``` 在上面的代码中,我们首先使用GetExcelWorkSheets方法来获取Excel文件中的工作簿列表,然后使用GetExcelData方法来读取指定工作簿中的数据。GetExcelData方法将返回一个DataTable对象,其中包含了读取的数据。 需要注意的是,在读取Excel数据到DataTable时,我们需要使用OleDbConnection来连接Excel文件,并使用GetOleDbSchemaTable方法来获取Excel文件中的工作簿列表。同时,我们还需要处理一些特殊情况,如Excel2003中的汉字工作簿名称无法正确识别的问题。 读取Excel数据到DataTable是一种常见的数据交换方式,我们可以使用OleDbConnection来连接Excel文件,并使用GetOleDbSchemaTable方法来获取Excel文件中的工作簿列表,然后读取每个工作簿中的数据,并将其保存到DataTable中。
- 「已注销」2018-11-08垃圾,一点作用都没有有。骗子
- 粉丝: 1
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助