简体   繁体   English

如何根据 c# 中的数据表在 excel 中创建图形

[英]How to create a graph in excel from data table in c#

I am using EPPLUS version(v4.0.30319), and i have data in datatable as shown below.But i am getting error in below code for LoadFromCollection我正在使用EPPLUS版本(v4.0.30319),并且我在数据表中有数据,如下所示。但是我在下面的LoadFromCollection代码中遇到错误

 DataTable dt = null;
        ExcelPackage pckGraph = null;
        string path = @"D:\PTP\graph\ptpgraph.xlsx";
        try
        {
            dt = CreateDatatable();
            var file_Summary = new FileInfo(path);
            if (File.Exists(path))
                File.Delete(path);
            using (pckGraph = new ExcelPackage(file_Summary))
            {
                ExcelWorksheet wsSummary = pckGraph.Workbook.Worksheets.Add("PTPGraph");
                ExcelChart chart = wsSummary.Drawings.AddChart("chart", eChartType.ColumnClustered);
                chart.XAxis.Title.Text = "Months"; //give label to x-axis of chart  
                chart.XAxis.Title.Font.Size = 10;
                chart.YAxis.Title.Text = "Usage(kwh)"; //give label to Y-axis of chart  
                chart.YAxis.Title.Font.Size = 10;
                chart.SetSize(1200, 300);
                chart.SetPosition(1, 0, 5, 0);
                OfficeOpenXml.Table.TableStyles.Medium1); 
                wsSummary.Cells[1, 1].LoadFromCollection(dt);
            }
        }
        catch (Exception ex)
        {
 
        }
 private static DataTable CreateDatatable()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Field",typeof(string));
            dt.Columns.Add("Differences", typeof(string));
            dt.Rows.Add(new object[] { "Remote Tx Frequency","412" });
            dt.Rows.Add(new object[] { "Hub Tx Frequency", "388" });
            dt.Rows.Add(new object[] { "Remote Modulation", "622" });
            dt.Rows.Add(new object[] { "Remote ChannelBW", "383" });
            dt.Rows.Add(new object[] { "Remote TxPower", "725" });
            dt.Rows.Add(new object[] { "Hub TxPower", "681" });
            dt.Rows.Add(new object[] { "Remote Ant Polarisation", "407" });
            dt.Rows.Add(new object[] { "Remote Equipment Type", "449" });
            dt.Rows.Add(new object[] { "Remote Equipment Vendor", "369" });
            return dt;
        }

My requirement is need to generate a graph as shown below我的要求是需要生成如下图在此处输入图像描述

I am not familiar with this package, but this is how you need to declare我对这个 package 不熟悉,但这就是你需要声明的方式

wsSummary.Cells[1, 1].LoadFromCollection(dt.AsEnumerable());

to make it readability for LoadFromCollection使其对LoadFromCollection具有可读性

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM