C# 使用EPPlus 秒導出10萬條數據
阿新 • • 發佈:2018-11-14
save send eve record eml ber 代碼 posit ember
1.先要引用dll文件,可以直接使用vs自帶的包管理,如下圖:
輸入 EPPlus
我這裏是安裝過了的所以這裏顯示的是卸載而不是安裝。
安裝成功了之後會看到這個dll文件
代碼如下:
//導出Excel protected void BtnMemExcel_Click(object sender, EventArgs e) { Mem bllMember = new Mem(); int Counts = NetPagerParameter.RecordCount; stringstrSql = 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();//這個方法是直接下載到本地 } }
C# 使用EPPlus 秒導出10萬條數據