利用第三方組件生成excel,並下載。

本篇文章內容就是介紹將數據保存到生成的excel表中,並進行下載。本人才疏學淺,所用方法可能不是好的方法,願讀者參考時加以思考,並給予建議!

某些時候需要將數據庫中的數據或者網頁上的數據保存下來,方便查看或者在沒有聯網情況下可以查看,而將數據保存到excel表中無疑使比較的選擇。

生成excel表格方法有很多種,由DataSet生成(CSV、XML)、由GridView生成(Html的Table),調用Excel生成和使用第三方組件生成等等,前兩種生成的excel文件只是excel格式,而不是標準的excel,後兩種生成的就是標準的excel。而如果直接調用Excel生成,會有一些侷限性。若是C/S模式的程序,就沒什麼問題,因爲程序是在客戶端跑的。若是B/S模式的程序,那服務器端必須安裝office。再者如果併發量很多,服務器端不好控制這些進程,容易造成服務器死機。所以很有必要使用第三方組件來生成,這樣子的好處就是可以不用安裝office軟件也可直接生成excel文件。

首先必須下載GemBox.Spreadsheet.dll並添加引用。

直接上代碼

static string path = System.Web.HttpContext.Current.Server.MapPath("~/Temp");//將生成的文件放在Temp的文件夾
public void CreateExcel()//生成excel
    { 
            ExcelFile ef = new ExcelFile();
            ExcelWorksheet ew = ef.Worksheets.Add("newSheet");


            ew.Cells[0, 4].Value = "添加內容";//在表格[0,4]位置添加內容
            if (!Directory.Exists(path)) //如果文件夾不存在則創建
            {
                Directory.CreateDirectory(path);
            }


            ef.SaveXls(path +"\\"  + "文件名" + ".xls");
            ef.LoadXls(path+ "\\" + "文件名" + ".xls", XlsOptions.None);
                        DowmLoad(“文件名” + ".xls");
    }
public void DowmLoad(string name)
    {
        FileInfo fileInfo = new FileInfo(path + "/" + name);
        Response.Clear();
        Response.ClearContent();
        Response.ClearHeaders();
        Response.AddHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(name));//解決ie下載時中文亂碼問題
        Response.AddHeader("Content-Length", fileInfo.Length.ToString());
        Response.AddHeader("Content-Transfer-Encoding", "binary");
        Response.ContentType = "application/octet-stream";
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
        Response.WriteFile(fileInfo.FullName);
        Response.Flush();
        Response.End();
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章