如何使用C#的epplus生成Excel新工作表,并在每个工作表中添加不同的内容

3

我希望使用Epplus C#在我的Web上生成Excel。我想要创建多张表格,每张表格都有不同的内容。我认为可能需要使用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();
        }

这个链接可以帮助你在项目中创建简单的Excel文件: https://www.c-sharpcorner.com/article/export-to-excel-in-asp-net-mvc/ - mehdi farhadi
您需要导出多个文件或同一文件中的多个工作表吗? - Sanjay
同一文件中有多个工作表。抱歉,我的错。 - Patamon TK
1个回答

1
如果您需要在同一文件中使用多个工作表,那么只需添加另一个工作表即可。
ExcelWorksheet ws1 = pkg.Workbook.Worksheets.Add("WorkSheet1");
//your operations for worksheet1

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

它对我有效,但我有我的旧文件 结果为3个工作表 Sheet1,Worksheet1,Worksheet2 我想让Worksheet1成为Excel的第一个工作表 我该怎么做? - Patamon TK
只需添加另一个工作表并按照您的要求进行排序。 - Sanjay
那么,你能否接受并点赞我的答案呢? - Sanjay
我不能这样做,因为我的声望不到15。 - Patamon TK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接