使用 ASP .NET Core 中的图形和数据制作 pdf

问题描述

我使用以下代码将图表制作成 pdf。我也想将数据写入pdf文件。目前仅以 pdf 格式导出图形。我希望 excel 表也导出到 pdf 文件中。

[Route("/chart")]
    public IActionResult CreateChart()
    {
        using (ExcelEngine excelEngine = new ExcelEngine())
        {
            IApplication application = excelEngine.Excel;
            application.DefaultVersion = ExcelVersion.Excel2013;
            IWorkbook workbook = application.Workbooks.Create(1);
            IWorksheet sheet = workbook.Worksheets[0];
            sheet.Range["A1"].Text = "Month";
            sheet.Range["B1"].Text = "Product A";
            sheet.Range["C1"].Text = "Product B";
            sheet.Range["A2"].Text = "Jan";
            sheet.Range["A3"].Text = "Feb";
            sheet.Range["A4"].Text = "Mar";
            sheet.Range["A5"].Text = "Apr";
            sheet.Range["A6"].Text = "May";
            Random r = new Random();
            for (int i = 2; i <= 6; i++)
            {
                for (int j = 2; j <= 3; j++)
                {
                    sheet.Range[i,j].Number = r.Next(0,500);
                }
            }
            IChartShape chart = sheet.Charts.Add();
            chart.ChartType = ExcelChartType.Line;
            chart.ChartTitle = "Product Sales comparison";
            IChartSerie productA = chart.Series.Add("ProductA");
            productA.Values = sheet.Range["B2:B6"];
            productA.CategoryLabels = sheet.Range["A2:A6"];
            IChartSerie productB = chart.Series.Add("ProductB");
            productB.Values = sheet.Range["C2:C6"];
            productB.CategoryLabels = sheet.Range["A2:A6"];
            XlsIORenderer renderer = new XlsIORenderer();
            Syncfusion.Pdf.PdfDocument pdfDocument = renderer.ConvertToPDF(sheet);
            MemoryStream stream = new MemoryStream();
            pdfDocument.Save(stream);
            stream.Flush();
            stream.Position = 0;
            return File(stream,"application/pdf","chart.pdf");
        }
    }

解决方法

Syncfusion XlsIO 确实支持将 Excel 文档中的表格转换为 PDF。请查看以下链接以了解如何使用 Syncfusion XlsIO 在 Excel 中创建表格。

https://help.syncfusion.com/file-formats/xlsio/working-with-excel-tables

问候, 凯尔蒂。