【Dongle】【Web】 Excel导入DataTable

    xiaoxiao2025-04-08  12

    using ReaderBLL; using System.Collections; using System.Data; using System.Data.SqlClient; using System.Data.OleDb; using System.IO; using System.Web.UI.HtmlControls;

    /// <summary> /// 验证文件的是否是excel文件 /// </summary> /// <param name="ExcelPath">文件全路径</param> /// <returns></returns> private string GetConStr(string ExcelPath) { string path = ExcelPath; //检查文件是否存在 if (!File.Exists(path)) { Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('请选择要导入的Excel文件!');</script>"); return null; } //文件存在,获取文件扩展名 string str2 = Path.GetExtension(path).ToLower(); if ((str2 != ".xls") && (str2 != ".xlsx")) { Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('请选择“.xls”或“.xlsx”文件!');</script>"); return null; } //如果文件后缀为.xls,则连接oledb4.0 string str3 = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" + path + "; Extended Properties=Excel 8.0"; //如果文件后缀为.xlsx,则连接oledb12.0 if (str2 == ".xlsx") { str3 = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source=" + path + "; Extended Properties=Excel 12.0"; } return str3; } /// <summary> /// 执行Excel转换成DataTable方法 /// </summary> /// <param name="ExcelPath"></param> /// <returns></returns> public DataTable ExcelToDataTable(string ExcelPath) { return ExcelToDataTable(ExcelPath, null); } /// <summary> /// 获取Excel数据,并导入到dataTable中,具体 /// </summary> /// <param name="ExcelPath">文件路径</param> /// <param name="SheetName">工作簿</param> /// <returns></returns> public DataTable ExcelToDataTable(string ExcelPath, string SheetName) { string conStr = GetConStr(ExcelPath); //判断文件是否为空 if (string.IsNullOrEmpty(conStr)) { return null; } //连接数据源,即Excel数据源 OleDbConnection connection = new OleDbConnection(conStr); connection.Open();//打开数据源 //判断是否存在对应名称的工作表 if (string.IsNullOrEmpty(SheetName)) { SheetName = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null).Rows[0]["TABLE_NAME"].ToString(); } else if (!SheetName.Contains("$")) { SheetName = SheetName + "$"; } //定义dataadapter,用于查找数据 OleDbDataAdapter adapter = new OleDbDataAdapter("select * from [" + SheetName + "]", conStr); //实例dataset,用于接收数据的容器 DataSet dataSet = new DataSet(); adapter.Fill(dataSet, "[" + SheetName + "$]");//填充dataset connection.Close();//关闭连接 return dataSet.Tables[0]; //转换成表格输出 }

    转载请注明原文地址: https://ju.6miu.com/read-1297840.html
    最新回复(0)