zoukankan      html  css  js  c++  java
  • ASP.NET中读取Excel内容,并显示在界面上

       客户端上传本地excel文件到服务器上,并在客户端显示。

      // 上传按钮  
       protected void btnUp_Click(object sender, EventArgs e)
       {
           bool b = Upload(fuExcel);  // 上传excel文件 
           if (!b)
           {
               return;
           }
           string name = fuExcel.FileName;
           string filepath = Server.MapPath("~/upload/") + name;
           DataSet ds = ExcelDataSource(filepath, ExcelSheetName(filepath)[0].ToString());
           GridView1.DataSource = ds;
           GridView1.DataBind();
       }
    
       //上传文件方法  
       private bool Upload(FileUpload myFileUpload)
       {
           bool flag = false;
           //是否允许上载  
           bool fileAllow = false;
           //设定允许上载的扩展文件名类型  
           string[] allowExtensions = { ".xls" };
    
           //取得网站根目录路径  
           string path = HttpContext.Current.Request.MapPath("~/upload/");
          if (myFileUpload.HasFile)
           { string fileExtension = System.IO.Path.GetExtension(myFileUpload.FileName).ToLower();
            for (int i = 0; i < allowExtensions.Length; i++)
               {
                   if (fileExtension == allowExtensions[i])
                   {
                       fileAllow = true;
                   }
               }
    
               if (fileAllow)
               {
                   try
                   {
                       //存储文件到文件夹 
                       myFileUpload.SaveAs(path + myFileUpload.FileName);
                       lblMes.Text = "文件导入成功";
                       flag = true;
                   }
                   catch (Exception ex)
                   {
                       lblMes.Text += ex.Message;
                       flag = false;
                   }
               }
               else
               {
                   lblMes.Text = "不允许上载:" + myFileUpload.PostedFile.FileName + ",只能上传xls的文件,请检查!";
                   flag = false;
               }
           }
           else
           {
               lblMes.Text = "请选择要导入的excel文件!";
               flag = false;
           }
           return flag;
       }
    
       //该方法实现从Excel中导出数据到DataSet中,其中filepath为Excel文件的绝对路径, sheetname为excel文件中的表名
    public DataSet ExcelDataSource(string filepath, string sheetname)
       {
           string strConn;
           strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;";
           OleDbConnection conn = new OleDbConnection(strConn);
           OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + sheetname + "]", strConn);
           DataSet ds = new DataSet();
           oada.Fill(ds);
           conn.Close();
           return ds;
       }
    
       //获得Excel中的所有sheetname。
       public ArrayList ExcelSheetName(string filepath)
       {
           ArrayList al = new ArrayList();
           string strConn;
           strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;";
           OleDbConnection conn = new OleDbConnection(strConn);
           conn.Open();
           DataTable sheetNames = conn.GetOleDbSchemaTable
           (System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
           conn.Close();
           foreach (DataRow dr in sheetNames.Rows)
           {
               al.Add(dr[2]);
           }
           return al;
       } 
    也可以在webconfig文件里面指定连接字符串的参数:
    <connectionStrings>
    
        <add name="xls"connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Sample1.xls;Extended Properties=Excel 8.0"/>
    
        <add name="xlsx"connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Sample.xlsx;Extended Properties=Excel 12.0"/>
    
      </connectionStrings>

    string connString = ConfigurationManager.ConnectionStrings["xls"].ConnectionString;

    注意XP下文件操作权限的问题。

  • 相关阅读:
    不同权限访问详细细节
    文件搜索器
    java中依赖、关联、聚合
    子类重写父类成员方法
    java中子类对父类中的私有变量和私有方法有拥有权无使用权
    shell脚本在CentOS7自动更包
    LR虚拟用户已设置集合点,但controller无法设置集合点策略的解决方案
    LR工具使用之场景设置
    LR集合点策略
    LR录制附件上传后,回放报错
  • 原文地址:https://www.cnblogs.com/chenqingwei/p/1575024.html
Copyright © 2011-2022 走看看