1. 程式人生 > 實用技巧 >C#使用EPPlus外掛匯出Excel

C#使用EPPlus外掛匯出Excel

Nuget新增EPPlus外掛

using OfficeOpenXml;
using OfficeOpenXml.Style;
        private void InitQueryRecordExcel(ICBCQueryRecord[] list)
        {
            ExcelPackage pck = new ExcelPackage();

            #region Dealer

            var ws = pck.Workbook.Worksheets.Add("QueryRecord");

            ws.Cells[
"A1"].Value = "證件型別"; ws.Cells["B1"].Value = "證件號碼"; ws.Cells["C1"].Value = "企業名稱/客戶姓名"; ws.Cells["D1"].Value = "查詢人"; ws.Cells["E1"].Value = "查詢日期"; ws.Cells["F1"].Value = "查詢結果"; ws.Cells["G1"].Value = "報告路徑"; ws.Cells[
"A1:G1"].Style.Font.Bold = true; ws.Cells[ws.Dimension.Address].AutoFitColumns(); var row = 2; foreach (var item in list) { var outlineLevel = 0; var reportUrl = string.Empty; if (!string.IsNullOrEmpty(item.RespCode) && !string
.IsNullOrEmpty(item.SOURCE_REQUEST)) { if (item.RespCode.Equals(BPCResult.ICBC_Query_SuccessCode) && item.SOURCE_REQUEST.Equals(SourceRequestEnum.CCG_FRONTEND.ToString())) { if (string.IsNullOrEmpty(item.ECM_STORAGE_URL)) { reportUrl = GetCurApplicationUrl.AbsoluteUri + string.Format("/BPC/Dingding/Report.aspx?qid={0}", item.QUERY_RECORD_ID); } else { reportUrl = item.ECM_STORAGE_URL; } } } //base info ws.Cells[row, 1].Value = (item.IDENTIFY_TYPE.Equals(0) ? "個人" : (item.IDENTIFY_TYPE.Equals(100) ? "企業" : item.IDENTIFY_TYPE.ToString())); ws.Cells[row, 2].Value = item.IDENTIFY_NUMBER; ws.Cells[row, 3].Value = item.APPLICANT_NAME; ws.Cells[row, 4].Value = item.QUERY_EMPLOYEE; ws.Cells[row, 5].Value = item.CREATED_DATETIME; ws.Cells[row, 5].Style.Numberformat.Format = "yyyy-MM-dd HH:mm:ss"; ws.Cells[row, 6].Value = ((!string.IsNullOrEmpty(item.RespCode) && !string.IsNullOrEmpty(item.RespMsg)) ? (item.RespCode + "," + item.RespMsg) : (string.Empty)); if (!string.IsNullOrEmpty(reportUrl)) { ws.Cells[row, 7].StyleName = "HyperLink"; ws.Cells[row, 7].Hyperlink = new Uri(reportUrl); } ws.Cells[row, 7].Value = reportUrl; ws.Row(row).OutlineLevel = outlineLevel; row++; } int rowCount = 1 + list.Count(); ws.Cells["A1:G" + rowCount].Style.Border.Top.Style = ExcelBorderStyle.Thin; ws.Cells["A1:G" + rowCount].Style.Border.Left.Style = ExcelBorderStyle.Thin; ws.Cells["A1:G" + rowCount].Style.Border.Bottom.Style = ExcelBorderStyle.Thin; ws.Cells["A1:G" + rowCount].Style.Border.Right.Style = ExcelBorderStyle.Thin; ws.OutLineSummaryBelow = false; #endregion string fileName = "BPCQueryRecord_" + DateTime.Now.ToString("yyyyMMddHHmmss"); HttpContext.Current.Response.ContentType = "application/ms-excel"; HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + fileName + ".xlsx"); HttpContext.Current.Response.ContentEncoding = Encoding.UTF8; HttpContext.Current.Response.BinaryWrite(pck.GetAsByteArray()); HttpContext.Current.Response.End(); }