日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#读取Excel显示到repeater中

發(fā)布時間:2025/7/14 C# 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#读取Excel显示到repeater中 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

首先需要一個用來存儲我們需要顯示的內(nèi)容,防止頁面回發(fā)丟失(添加時使用)

#region 緩存文件private DataTable excelData;/// <summary>/// 緩存已經(jīng)讀取過的Datatable/// </summary>public DataTable ExcelData{get{if (ViewState["mydata"] != null){excelData = (DataTable)ViewState["mydata"];}return excelData;}set{ViewState["mydata"] = value;}}#endregion

?接下來檢查上傳文件

/// <summary>/// 檢查文件上傳/// </summary>/// <param name="fileName"></param>/// <returns></returns>public string CheckFile(string fileName){if (string.IsNullOrEmpty(fileName)){return "Please ensure that you upload file exists!";}if (!fileName.ToLower().EndsWith(".xls") && !fileName.ToLower().EndsWith(".xlsx")){return "You select the file format is not correct, please try again!";}if (fileName.IndexOf(".") <= 0){return "Please select a file to upload!";}return "";}

?

/// <summary>/// 連接Excel,并讀取數(shù)據(jù)源/// </summary>/// <param name="filepath">數(shù)據(jù)源路徑</param>/// <returns>Excel文件的工作薄里的數(shù)據(jù)</returns>public DataSet connExcel(string filepath){if (!string.IsNullOrEmpty(filepath)){try{string connstring = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + filepath + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'"; //此連接可以操作.xls與.xlsx文件 (支持Excel2003 和 Excel2007 的連接字符串)OleDbConnection objconn = new OleDbConnection(connstring);objconn.Open();DataTable dt = objconn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "table" });string sheetname = "Sheet1$";sheetname = dt.Rows[0]["TABLE_NAME"].ToString();objconn.Close();string strsql = "select * from [" + sheetname + "]";DataSet ds = new DataSet();OleDbDataAdapter adp = new OleDbDataAdapter(strsql, objconn);adp.Fill(ds);return ds;}catch (Exception ex){throw new Exception("Occurs when a data source connection:" + ex.Message);}}else{throw new Exception("File does not exist!");}}

?

/// <summary>/// 讀取Excel/// </summary>/// <param name="path"></param>/// <returns></returns>private DataTable readExcel(string path){DataTable dt = new DataTable("myTestTable");dt.Columns.Add("ID");dt.Columns.Add("Name");dt.Columns.Add("Sex");DataView dv = new DataView(dt);DataSet ds = connExcel(path);return ds.Tables[0];}

?

/// <summary>/// 上傳文件的方法/// </summary>/// <returns></returns>[ScriptMethod]private void PreviewData(){//獲取文件名string fileName = Path.GetFileName(this.fileSave.PostedFile.FileName);//檢索文件string message = CheckFile(fileName);if (!string.IsNullOrEmpty(message)){Page.ClientScript.RegisterStartupScript(this.GetType(), "ok", "alert('" + message + "')", true);return;}try{string path = Server.MapPath("/MyTest/ExcelData/");//文件是否存在,如果不存在則創(chuàng)建if (!Directory.Exists(path)){Directory.CreateDirectory(path);}//定義文件的隨機數(shù)Random rand = new Random();path += rand.Next(0, 9999999) + DateTime.Now.Hour + DateTime.Now.Minute + fileName;//上傳文件this.fileSave.PostedFile.SaveAs(path);//將數(shù)據(jù)內(nèi)容保存到緩存中ExcelData = this.readExcel(path);this.rptData.Visible = true;this.rptData.DataSource = ExcelData;this.rptData.DataBind();}catch (Exception ex){throw ex;//Page.ClientScript.RegisterStartupScript(this.GetType(), "no", "alert('" + ex.Message + "')", true);}}

?

轉(zhuǎn)載于:https://www.cnblogs.com/myblogslh/p/4387581.html

總結(jié)

以上是生活随笔為你收集整理的C#读取Excel显示到repeater中的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。