一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - asp.net上傳Excel文件并讀取數據的實現方法

asp.net上傳Excel文件并讀取數據的實現方法

2019-06-19 17:14willingtolove ASP.NET教程

這篇文章主要給大家介紹了關于asp.net上傳Excel文件并讀取數據的實現方法,文中通過示例代碼以及圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

本文主要給大家介紹了關于asp.net上傳Excel文件并讀取數據的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧

實現如下:

前臺代碼:使用服務端控件實現上傳

  <form id="form1" runat="server">
   <div>
    <asp:FileUpload ID="ExcelFileUpload" runat="server" />
    <asp:Button ID="UploadBtn" runat="server" Text="確定上傳" OnClick="UploadBtn_Click" />
   </div>
  </form>

服務端代碼:

protected void UploadBtn_Click(object sender, EventArgs e)
{
 if (ExcelFileUpload.HasFile == false)//HasFile用來檢查FileUpload是否有文件
 {
  Response.Write("<script>alert('請您選擇Excel文件')</script> ");
  return;//當無文件時,返回
 }
 string IsXls = Path.GetExtension(ExcelFileUpload.FileName).ToString().ToLower();//System.IO.Path.GetExtension獲得文件的擴展名
 if (IsXls != ".xlsx" && IsXls != ".xls")
 {
  Response.Write(ExcelFileUpload.FileName);
  Response.Write("<script>alert('只可以選擇Excel文件')</script>");
  return;//當選擇的不是Excel文件時,返回
 }

 string filename = ExcelFileUpload.FileName;//獲取Execle文件名 
 string savePath = Server.MapPath(("UploadExcel\\") + filename);//Server.MapPath 服務器上的指定虛擬路徑相對應的物理文件路徑
 //savePath ="D:\vsproject\Projects\exceltestweb\exceltestweb\uploadfiles\test.xls"
 //Response.Write(savePath);
 DataTable ds = new DataTable();
 ExcelFileUpload.SaveAs(savePath);//將文件保存到指定路徑

 DataTable dt = GetExcelDatatable(savePath);//讀取excel數據
 List<RegNumInfo> regList = ConvertDtToInfo(dt);//將datatable轉為list
 File.Delete(savePath);//刪除文件

 Response.Write("<script>alert('上傳文件讀取數據成功!');</script>");
}
/// <summary>
/// 從excel文件中讀取數據
/// </summary>
/// <param name="fileUrl">實體文件的存儲路徑</param>
/// <returns></returns>
private static DataTable GetExcelDatatable(string fileUrl)
{
 //支持.xls和.xlsx,即包括office2010等版本的;HDR=Yes代表第一行是標題,不是數據;
 string cmdText = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileUrl + "; Extended Properties=\"Excel 12.0;HDR=Yes\"";
 System.Data.DataTable dt = null;
 //建立連接
 OleDbConnection conn = new OleDbConnection(cmdText);
 try
 {
  //打開連接
  if (conn.State == ConnectionState.Broken || conn.State == ConnectionState.Closed)
  {
   conn.Open();
  }

  System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
  string strSql = "select * from [Sheet1$]"; //這里指定表明為Sheet1,如果修改過表單的名稱,請使用修改后的名稱
  OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);
  DataSet ds = new DataSet();
  da.Fill(ds);
  dt = ds.Tables[0]; ;
  return dt;
 }
 catch (Exception exc)
 {
  throw exc;
 }
 finally
 {
  conn.Close();
  conn.Dispose();
 }
}
/// <summary>
/// 將datatable轉換為list集合
/// </summary>
/// <param name="dt">DataTable</param>
/// <returns></returns>
private static List<RegNumInfo> ConvertDtToInfo(DataTable dt)
{
 List<RegNumInfo> list = new List<RegNumInfo>();
 if (dt.Rows.Count > 0)
 {
  foreach (DataRow item in dt.Rows)
  {
   RegNumInfo info = new RegNumInfo();
   info.RegNum = item[0].ToString();
   info.Name = item[1].ToString();
   info.Period = item[2].ToString();
   info.Remark = item[3].ToString();
   list.Add(info);
  }
 }
 return list;
}
public class RegNumInfo
{
 public string RegNum { get; set; }
 public string Name { get; set; }
 public string Period { get; set; }
 public string Remark { get; set; }
}

注意:出現“未在本地計算機上注冊“microsoft.ACE.oledb.12.0”提供程序” 的報錯的解決方案

  1、因為讀取excel文件使用的是OleDb,如果服務器沒有安裝office,需要安裝數據訪問組件(AccessDatabaseEngine);

    *適用于office2010的

    Microsoft Access Database Engine 2010 Redistributable

    https://www.microsoft.com/zh-CN/download/details.aspx?id=13255

  2、在IIS應用程序池中,設置“”啟用兼容32位應用程序”;

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 高清一区高清二区视频 | 午夜私人福利影院 | 日本高清va不卡视频在线观看 | 免费观看在线观看 | 欧美在线视频免费播放 | 精品国产无限资源免费观看 | 国产v日韩v欧美v精品专区 | 色综合视频一区二区三区 | 手机看片福利 | 欧美一卡二卡科技有限公司 | 和直男装修工在工地啪 | 艾秋果冻麻豆老狼 | 男人插曲女人下面 | 成人福利网站含羞草 | 日本激情网 | 欧美草逼网 | 暖暖视频免费观看视频中国.韩剧 | 国产精品66福利在线观看 | 日韩欧美亚洲一区精选 | 暖暖 免费 高清 日本 在线1 | 欧美18-19sex性处 | 欧美一区二区福利视频 | 久久爽狠狠添AV激情五月 | 欧美特欧美特级一片 | 午夜影院在线免费观看 | 国产一页 | 天天做天天爱天天一爽一毛片 | 和两个男人玩3p好爽视频 | 亚洲精品卡一卡2卡3卡4卡 | 亚洲黄视频在线观看 | 日韩成人在线影院 | 免费二级毛片免费完整视频 | 午夜爱爱爱爱爽爽爽视频网站 | 欧美黑人性| 四虎影院免费在线播放 | 免费xxxx日本大片在线观看 | 国产一区二区三区四卡 | 久久精品亚洲牛牛影视 | 亚洲精品m在线观看 | 99热这里只有精 | 日本韩国在线 |