asp.net上傳execl文件后,在頁面上加載顯示

字號:


    本篇文章主要是對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('系統(tǒng)提示', '操作成功!', 'info');");
    }
    catch
    {
    Maticsoft.Common.MessageBox.ResponseScript(Page, "$.messager.alert('系統(tǒng)提示', '請重新上傳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 = "此文件名已經(jīng)存在!"; return erorr; }
    }
    fu.SaveAs(path + filename);
    return erorr;//返回有錯的錯誤信息,沒有錯誤返回null
    }
    #endregion