首页 > 编程 > C# > 正文

ASP.Net动态读取Excel文件最简方法

2020-01-24 00:18:14
字体:
来源:转载
供稿:网友

注意:页面分别拖拽一个FileUpload、Button1、Label1、GridView控件,并新建一个UploadedExcel文件夹

Default.aspx.cs代码:

using System;using System.Collections.Generic;using System.Data;using System.Data.OleDb;using System.IO;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace WebApplication2{  public partial class WebForm1 : System.Web.UI.Page  {    protected void Page_Load(object sender, EventArgs e)    {       delete();    }    protected void Button1_Click(object sender, EventArgs e)    {      OleDbConnection conn = new OleDbConnection();      OleDbCommand cmd = new OleDbCommand();      OleDbDataAdapter da = new OleDbDataAdapter();      DataSet ds = new DataSet();      string query = null;      string connString = "";      string strFileName = DateTime.Now.ToString("ddMMyyyy_HHmmss");      //string strFileName = Path.GetFileNameWithoutExtension(FileUpload1.PostedFile.FileName);      string strFileType = Path.GetExtension(FileUpload1.FileName).ToString().ToLower();      if (strFileType == ".xls" || strFileType == ".xlsx")      {        FileUpload1.SaveAs(Server.MapPath("~/UploadedExcel/" + strFileName + strFileType));      }      else      {        return;      }      string strNewPath = Server.MapPath("~/UploadedExcel/" + strFileName + strFileType);      if (strFileType.Trim() == ".xls")      {        connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strNewPath + ";Extended Properties=/"Excel 8.0;HDR=Yes;IMEX=2/"";      }      else if (strFileType.Trim() == ".xlsx")      {        connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strNewPath + ";Extended Properties=/"Excel 12.0;HDR=Yes;IMEX=2/"";      }      query = "SELECT * FROM [Sheet1$]";      conn = new OleDbConnection(connString);      if (conn.State == ConnectionState.Closed)      {        conn.Open();      }      try      {        cmd = new OleDbCommand(query, conn);        da = new OleDbDataAdapter(cmd);        ds = new DataSet();        da.Fill(ds);        GridView1.DataSource = ds.Tables[0];        GridView1.DataBind();        Label1.Text = "读取成功";      }      catch (Exception ex)      {        Label1.Text = "读取失败";        Response.Write(ex);      }      finally      {        da.Dispose();        conn.Close();        conn.Dispose();      }    }    //定时任务    private void delete()    {      DirectoryInfo di = new DirectoryInfo(Server.MapPath("/UploadedExcel/"));      FileInfo[] fi = di.GetFiles("*." + "*");      DateTime dtNow = DateTime.Now;      foreach (FileInfo tmpfi in fi)      {        TimeSpan ts = dtNow.Subtract(tmpfi.LastWriteTime);        if (ts.Milliseconds > 100)        {          tmpfi.Attributes = FileAttributes.Normal;          tmpfi.Delete();        }      }    }  }}

注意:FileUpload控件并不能直接获取到文件的绝对路径(IE6及以下除外),只能通过上传到服务器再进行数据加载,然后再删除

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表