1. 程式人生 > >C# 使用EPPlus 秒匯出10萬條資料

C# 使用EPPlus 秒匯出10萬條資料

 

1.先要引用dll檔案,可以直接使用vs自帶的包管理,如下圖:

輸入 EPPlus

 

 我這裡是安裝過了的所以這裡顯示的是解除安裝而不是安裝。

安裝成功了之後會看到這個dll檔案

程式碼如下:

//匯出Excel
        protected void BtnMemExcel_Click(object sender, EventArgs e)
        {
            Mem bllMember = new Mem();
            int Counts = NetPagerParameter.RecordCount;
            
string strSql = QueryCondition(); strSql += "and Mem.MemShopID = SysShop.ShopID and Mem.MemLevelID = MemLevel.LevelID and Mem.MemUserID = SysUser.UserID"; strSql += (" and Mem.MemShopID =SysShopMemLevel.ShopID and SysShopMemLevel.MemLevelID=MemLevel.LevelID "); DataTable db
= bllMember.GetListSP(100000, 1, out Counts, PubFunction.GetShopAuthority(_UserShopID, "MemShopID", strSql)).Tables[0];//講資料填充到table中 //核心程式碼 using (ExcelPackage package = new ExcelPackage()) { ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("
Sheet"); worksheet.Cells[1, 1].Value = "會員卡號"; worksheet.Cells[1, 2].Value = "會員姓名"; worksheet.Cells[1, 3].Value = "會員餘額" + DateTime.Now.ToString("yyyy-MM-dd HH:mmssffff"); for (int i = 2; i < db.Rows.Count + 2; i++) { worksheet.Cells[i, 1].Value = db.Rows[i - 2]["MemCard"]; worksheet.Cells[i, 2].Value = db.Rows[i - 2]["MemName"]; worksheet.Cells[i, 3].Value = db.Rows[i - 2]["MemMobile"]; worksheet.Cells[i, 4].Value = db.Rows[i - 2]["MemBirthday"]; worksheet.Cells[i, 5].Value = db.Rows[i - 2]["MemPoint"]; worksheet.Cells[i, 6].Value = db.Rows[i - 2]["MemConsumeMoney"]; worksheet.Cells[i, 7].Value = db.Rows[i - 2]["ShopName"]; } var data = package.GetAsByteArray(); //儲存和歸來的Excel檔案作為一個ByteArray HttpResponse response = HttpContext.Current.Response; Response.Clear(); //輸出標頭檔案   Response.AddHeader("content-disposition", "attachment; filename=會員資訊.xlsx"); Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.BinaryWrite(data); Response.Flush(); Response.End(); //package.Save();//這個方法是直接下載到本地 } }