asp.net读取Excel数据
先通过控件FileUpload获取excel文件路径
protected void btnReadExcelFromFileUpload_Click(object sender, EventArgs e) { if (fupExcel.PostedFile.ContentLength > 0) { //获取全路径 string fullFileName = fupExcel.PostedFile.FileName.ToString(); //获取文件名 string fileName = fupExcel.FileName.ToString(); //获取文件类型 string type = fileName.Substring(fileName.LastIndexOf(".") + 1); //获取上传路径 string path = Server.MapPath("UploadFile\\")+fileName; Response.Write(path); //文件大小 FileInfo file = new FileInfo(fullFileName); float size=(file.Length/1024)/1024; if (type != "xls") { Response.Write("<script language='javascript'>alert('不是Excel文件!')</script>"); } else { // fupExcel.PostedFile.SaveAs(path);//上传到服务器 DataSet ds = ImportExcel(fullFileName); gvFirst.DataSource = ds; gvFirst.DataBind(); } } }
读取excel文件里的数据到DataSet里
/// <summary> /// 读取Excel数据到DataSet /// </summary> /// <param name="filename"></param> /// <returns></returns> public static DataSet ImportExcel(string filename) { try { //文件路径 string ExcelName = filename; //HDR=YES 有两个值:YES/NO,表示第一行是否字段名,默认是YES,第一行是字段名 /* IMEX有三个值0,1,2,其他两个值分别表示什么 当 IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。 当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。 当 IMEX=2 时为“连結模式”,这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。 详见:http://www.cnblogs.com/goto/archive/2012/04/12/2443670.html */ string strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExcelName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';";//连接excel文件的字符串 if (ExcelName == null) { return null; } OleDbConnection odcon = new OleDbConnection(strcon);//建立连接 odcon.Open();//打开连接 System.Data.DataTable sTable = odcon.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); //Sheets Name string tableName = sTable.Rows[0][2].ToString().Trim(); if (tableName == "") { return null; } else { tableName = "[" + tableName + "]"; } OleDbDataAdapter odda = new OleDbDataAdapter("select * from " + tableName, odcon); DataSet ds = new DataSet(); try { odda.Fill(ds); } catch (Exception ex) { throw ex; } finally { odcon.Close(); } return ds; } catch (Exception ex) { return null; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用