asp.net上传execl文件后,在页面上加载显示(示例代码)

  

复制代码 代码如下:

  #region 上传Execl文件

  protected void Button1_Click(object sender, EventArgs e)

  {

  if (FileUpload1.HasFile)

  {

  string NewFileName = string.Empty;

  string ErrorMess = UpLoadFile(FileUpload1, ".xls|.xlsx", 1024 * 5, Server.MapPath("/Report/SocialApply/"), 1, out NewFileName);

  if (string.IsNullOrEmpty(ErrorMess))

  {

  Label1.Text = "√文件上传成功";

  ViewState["UpLoadFile"] = "/Report/SocialApply/" + NewFileName;

  try

  {

  FileStream file = new FileStream

  (Server.MapPath(ViewState["UpLoadFile"] as string),

  FileMode.Open, FileAccess.Read,

  FileShare.ReadWrite);

  DataTable dt1 = FairHR.Util.XmlExcelReport.ReadExcelToDataTable(file, 0, 0);

  ViewState.Add("ViewDT", dt1);

  GridView1.DataSource = ViewState["ViewDT"] as DataTable;

  GridView1.DataBind();

  file.Close();

  //Maticsoft.Common.MessageBox.ResponseScript(Page, "$.messager.alert('系统提示', '操作成功!', 'info');");

  }

  catch

  {

  Maticsoft.Common.MessageBox.ResponseScript(Page, "$.messager.alert('系统提示', '请重新上传Execl文件再操作', 'warning');");

  }

  }

  else

  {

  Label1.Text = "×文件上传失败";

  }

  }

  else

  {

  Label1.Text = "×请先选择上传文件";

  }

  ScriptManager.RegisterClientScriptBlock(Page, this.GetType(), "idAlert1", "closeLoad();", true);

  }

  #endregion

  #region 上传文件

  /// <summary>

  /// 上传文件

  /// </summary>

  /// <param name="fu">上传文件</param>

  /// <param name="type">上传文件类型,例如.jpg|.gif|.bmp</param>

  /// <param name="size">限制上传文件大小,单位为k</param>

  /// <param name="path">上传路径,需使用server.mappath</param>

  /// <param name="nametype">1为自动命名,0用原名</param>

  /// <returns></returns>

  public static string UpLoadFile(FileUpload fu, string type, int size, string path, int nametype, out string newFileName)

  {

  newFileName = null;

  string erorr = null;

  int Size = fu.PostedFile.ContentLength / 1024;

  if (Size > size)

  {

  erorr = "上传文件太大!";

  return erorr;

  }

  string Type = fu.FileName;

  if (Type.IndexOf(".") == -1) { erorr = "上传文件类型有误!"; return erorr; }

  Type = Type.Substring(Type.LastIndexOf(".")).ToUpper();

  type = type.ToUpper();

  if (type.IndexOf(Type) == -1) { erorr = "上传文件类型有误!"; return erorr; }

  string filename = "";

  if (nametype == 1)

  {

  string nowdate = DateTime.Now.ToString();

  nowdate = nowdate.Replace(":", "").Replace(" ", "").Replace("-", "").Trim();

  Random r = new Random();

  int a = r.Next(1000);

  filename = nowdate + a.ToString() + Type;

  newFileName = filename;

  }

  else

  {

  filename = fu.FileName;

  if (System.IO.File.Exists(path + filename)) { erorr = "此文件名已经存在!"; return erorr; }

  }

  fu.SaveAs(path + filename);

  return erorr;//返回有错的错误信息,没有错误返回null

  }

  #endregion