asp.net 读取Excel数据到DataTable的代码
2010-03-16 00:00
891 查看
/// <summary> /// 获取指定路径、指定工作簿名称的Excel数据:取第一个sheet的数据 /// </summary> /// <param name="FilePath">文件存储路径</param> /// <param name="WorkSheetName">工作簿名称</param> /// <returns>如果争取找到了数据会返回一个完整的Table,否则返回异常</returns> public DataTable GetExcelData(string astrFileName) { string strSheetName = GetExcelWorkSheets(astrFileName)[0].ToString(); return GetExcelData(astrFileName, strSheetName); }
代码
/// <summary> /// 返回指定文件所包含的工作簿列表;如果有WorkSheet,就返回以工作簿名字命名的ArrayList,否则返回空 /// </summary> /// <param name="strFilePath">要获取的Excel</param> /// <returns>如果有WorkSheet,就返回以工作簿名字命名的ArrayList,否则返回空</returns> 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) { return null; } return alTables; }
代码
/// <summary> /// 获取指定路径、指定工作簿名称的Excel数据 /// </summary> /// <param name="FilePath">文件存储路径</param> /// <param name="WorkSheetName">工作簿名称</param> /// <returns>如果争取找到了数据会返回一个完整的Table,否则返回异常</returns> public DataTable GetExcelData(string FilePath, string WorkSheetName) { DataTable dtExcel = new DataTable(); OleDbConnection con = new OleDbConnection(GetExcelConnection(FilePath)); OleDbDataAdapter adapter = new OleDbDataAdapter("Select * from [" + WorkSheetName + "$]", con); //读取 con.Open(); adapter.FillSchema(dtExcel, SchemaType.Mapped); adapter.Fill(dtExcel); con.Close(); dtExcel.TableName = WorkSheetName; //返回 return dtExcel; }
代码
/// <summary> /// 获取链接字符串 /// </summary> /// <param name="strFilePath"></param> /// <returns></returns> public string GetExcelConnection(string strFilePath) { if (!File.Exists(strFilePath)) { throw new Exception("指定的Excel文件不存在!"); } return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFilePath + ";Extended properties=\"Excel 8.0;Imex=1;HDR=Yes;\""; //@"Provider=Microsoft.Jet.OLEDB.4.0;" + //@"Data Source=" + strFilePath + ";" + //@"Extended Properties=" + Convert.ToChar(34).ToString() + //@"Excel 8.0;" + "Imex=1;HDR=Yes;" + Convert.ToChar(34).ToString(); }
相关文章推荐
- asp.net 读取并显示excel数据的实现代码
- asp.net 读取并显示excel数据的实现代码
- asp.net读取excel内容并将数据捞进DATASET中
- 将后台数据读取到前台的EXCEL文件中去,用javascript实现,asp.net,javacript(发一个原创)
- asp.net 读取Excel数据并将数据插入到数据库中
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- ASP.NET中上传并读取Excel文件数据
- [ASP.NET-C#]将DataSet、DataTable中的数据导出为Excel的解决方法
- ASP.NET读取Excel数据源
- [导入]ASP.NET中上传并读取Excel文件数据
- ASP.NET中上传并读取Excel文件数据
- asp.net中读取数据库数据代码
- ASP.NET中应用Excel:12)其它读取Excel数据的方法(完)
- ASP.NET中上传并读取Excel文件数据
- ASP.NET读取XML某节点所有数据返回DataTable实例
- ASP.NET中读取Excel文件数据
- asp.net使用组件koogra读取Excel数据批量上传导入
- ASP.NET中上传并读取Excel文件数据