国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

ASP.NET中讀取excel內(nèi)容并顯示

2019-11-14 16:36:31
字體:
供稿:網(wǎng)友

   項目中經(jīng)常會用到把Excel的文件內(nèi)容導(dǎo)入到數(shù)據(jù)庫中的,剛剛花了點時間,做了個例子,基本上能實現(xiàn)導(dǎo)入Excel后顯示的功能吧,導(dǎo)入的excel文件得是xls,即是2003的. 
    代碼思路如下:要讀取的excel文件必得得是在本地硬盤,所以一般來說都是讓遠程用戶選擇自己硬盤上的Excel文件,然后把用戶選擇的文件上傳到本地服務(wù)器上,再在本地服務(wù)器上進行操作.我把界面后置代碼重要部分貼出來,大家自己慢慢看吧,都有注釋了. 

C#代碼  收藏代碼
  1. // 上傳按鈕  
  2.     PRotected void btnUp_Click(object sender, EventArgs e)  
  3.     {  
  4.         bool b = Upload(fuExcel);  // 上傳excel文件  
  5.         if (!b)  
  6.         {  
  7.             return;  
  8.         }  
  9.         string name = fuExcel.FileName;  
  10.         string filepath = Server.MapPath("~/upload/") + name;  
  11.         DataSet ds = ExcelDataSource(filepath, ExcelSheetName(filepath)[0].ToString());  
  12.         GridView1.DataSource = ds;  
  13.         GridView1.DataBind();  
  14.     }  
  15.   
  16.     //上傳文件方法  
  17.     private bool Upload(FileUpload myFileUpload)  
  18.     {  
  19.         bool flag = false;  
  20.         //是否允許上載  
  21.         bool fileAllow = false;  
  22.         //設(shè)定允許上載的擴展文件名類型  
  23.         string[] allowExtensions = { ".xls" };  
  24.   
  25.         //取得網(wǎng)站根目錄路徑  
  26.         string path = HttpContext.Current.Request.MapPath("~/upload/");  
  27.         //檢查是否有文件案  
  28.         if (myFileUpload.HasFile)  
  29.         {  
  30.             //取得上傳文件之擴展文件名,并轉(zhuǎn)換成小寫字母  
  31.             string fileExtension = System.IO.Path.GetExtension(myFileUpload.FileName).ToLower();  
  32.             //檢查擴展文件名是否符合限定類型  
  33.             for (int i = 0; i < allowExtensions.Length; i++)  
  34.             {  
  35.                 if (fileExtension == allowExtensions[i])  
  36.                 {  
  37.                     fileAllow = true;  
  38.                 }  
  39.             }  
  40.   
  41.             if (fileAllow)  
  42.             {  
  43.                 try  
  44.                 {  
  45.                     //存儲文件到文件夾  
  46.                     myFileUpload.SaveAs(path + myFileUpload.FileName);  
  47.                     lblMes.Text = "文件導(dǎo)入成功";  
  48.                     flag = true;  
  49.                 }  
  50.                 catch (Exception ex)  
  51.                 {  
  52.                     lblMes.Text += ex.Message;  
  53.                     flag = false;  
  54.                 }  
  55.             }  
  56.             else  
  57.             {  
  58.                 lblMes.Text = "不允許上載:" + myFileUpload.PostedFile.FileName + ",只能上傳xls的文件,請檢查!";  
  59.                 flag = false;  
  60.             }  
  61.         }  
  62.         else  
  63.         {  
  64.             lblMes.Text = "請選擇要導(dǎo)入的excel文件!";  
  65.             flag = false;  
  66.         }  
  67.         return flag;  
  68.     }  
  69.   
  70.     //該方法實現(xiàn)從Excel中導(dǎo)出數(shù)據(jù)到DataSet中,其中filepath為Excel文件的絕對路徑, sheetname為excel文件中的表名  
  71.     public DataSet ExcelDataSource(string filepath, string sheetname)  
  72.     {  
  73.         string strConn;  
  74.         strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;";  
  75.         OleDbConnection conn = new OleDbConnection(strConn);  
  76.         OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + sheetname + "]", strConn);  
  77.         DataSet ds = new DataSet();  
  78.         oada.Fill(ds);  
  79.         conn.Close();  
  80.         return ds;  
  81.     }  
  82.   
  83.     //獲得Excel中的所有sheetname。  
  84.     public ArrayList ExcelSheetName(string filepath)  
  85.     {  
  86.         ArrayList al = new ArrayList();  
  87.         string strConn;  
  88.         strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;";  
  89.         OleDbConnection conn = new OleDbConnection(strConn);  
  90.         conn.Open();  
  91.         DataTable sheetNames = conn.GetOleDbSchemaTable  
  92.         (System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });  
  93.         conn.Close();  
  94.         foreach (DataRow dr in sheetNames.Rows)  
  95.         {  
  96.             al.Add(dr[2]);  
  97.         }  
  98.         return al;  
  99.     }  


要注意的是我們要一開始就在網(wǎng)站根目錄下建立upload文件夾,而且要把他的權(quán)限設(shè)置為可讀可寫的?這個權(quán)限的問題搞得頭大,不知道到底應(yīng)該怎么搞的,XP系統(tǒng)下新建立的文件夾好像都是只讀的,我右鍵屬性把只讀去掉,結(jié)果再次查看的時候還是只讀,不過好像發(fā)現(xiàn)對程序沒有什么意思,上傳完excel文件后還是可以讀取查看的. 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 奈曼旗| 耿马| 巨鹿县| 衡东县| 石景山区| 柘荣县| 汶上县| 蒙阴县| 龙岩市| 张掖市| 涞源县| 平遥县| 谢通门县| 准格尔旗| 塔城市| 焦作市| 哈巴河县| 黄冈市| 盈江县| 湖口县| 南漳县| 静安区| 慈利县| 曲松县| 兴隆县| 军事| 双江| 兰考县| 涞水县| 兴化市| 监利县| 赤城县| 万山特区| 青铜峡市| 德昌县| 额敏县| 那曲县| 绥阳县| 资溪县| 东乌珠穆沁旗| 禹城市|