如何在每个 sheet 中生成具有不同内容的 Excel epplus C# new sheet

How to generate Excel epplus C# new sheet with different content in each sheet

我想在我的 Web 上使用 Epplus C# 生成 excel。 我想在 Excel 中创建多个 sheet,每个 sheet 具有不同的内容。 我想也许我必须使用循环 For。 但我不知道如何编码。 请帮我。抱歉我的英语不好。

    using (ExcelPackage pkg = new ExcelPackage())
        {
            var fullFilename = "warming up specification.xlsx";
            var oldFilePath = Server.MapPath("~/File" + "/" + fullFilename);

            using (FileStream stream = new FileStream(oldFilePath, FileMode.Open))
            {


                pkg.Load(stream);
                ExcelWorksheet ws = pkg.Workbook.Worksheets[1];


                //set Fixed Cell value
                foreach (var item in dict)
                {
                    ws.Cells[item.Key].Value = item.Value; 
                }
                ws.Cells.Style.Font.Size = 13;
                ws.Cells.Style.WrapText = true;
                ws.PrinterSettings.PaperSize = ePaperSize.A4;

                ws.PrinterSettings.FitToPage = true;
                ws.PrinterSettings.FooterMargin = 0M;
                ws.PrinterSettings.TopMargin = 0M;
                ws.PrinterSettings.LeftMargin = 0M;
                ws.PrinterSettings.RightMargin = 0M;

                ws.Cells["A1:AC1"].Merge = true;
                ws.Cells["A1:AC1"].Style.Font.Bold = true;
                ws.Cells["A1:AC1"].Style.Font.Size = 25;
                ws.Cells["A1:AC1"].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
                ws.Cells["A1:AC1"].Style.VerticalAlignment = ExcelVerticalAlignment.Center;
                ws.Cells["A1:AC1"].Value = "TEST";
                // ws.Cells["F1:L1"].Style.Border.Bottom.Style = ws.Cells["F1:L1"].Style.Border.Left.Style = ws.Cells["F1:L1"].Style.Border.Right.Style = ws.Cells["F1:L1"].Style.Border.Top.Style = ExcelBorderStyle.Thin;

                Random rand = new Random();
                Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                Response.AddHeader("content-disposition", "attachment;  filename=" + DateTime.Now.ToString("yyyyMMdd") + "_" + rand.Next(1, 999) + "_" + fullFilename);
                Response.BinaryWrite(pkg.GetAsByteArray());
                Response.End();
        }

如果您要查找的是同一文件中的多个工作表,则只需添加另一个工作表即可。

ExcelWorksheet ws1 = pkg.Workbook.Worksheets.Add("WorkSheet1");
//your operations for worksheet1

ExcelWorksheet ws2 = pkg.Workbook.Worksheets.Add("WorkSheet2");
//your operations for worksheet2