EPPlus绘制刻度线

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OfficeOpenXml;
using OfficeOpenXml.Drawing.Chart;
 
namespace _2022_03_10_测试Epplus
{
    class Program
    {
        static void Main(string[] args)
        {
            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
 
 
            List<MyData> li = new List<MyData>();
            for (int i = 0; i < 100; i++)
            {
                li.Add(new MyData() { X = i, Y = i });
            }
 
 
            using (var package = new ExcelPackage(new FileInfo("MyWo0123.xlsx")))
            {
 
 
                var ws = package.Workbook.Worksheets.Add("123");
 
                ws.Cells["A1"].LoadFromCollection(li, true);
                var yRange = ws.Cells[$"A2:A" + (li.Count() + 1)];
                var xRange = ws.Cells[$"B2:B" + (li.Count() + 1)];
                  
                int i = 0;
                // 添加时间图
                var lineChart = ws.Drawings.AddChart("line", eChartType.Line);
 
                var lineSeries = lineChart.Series.Add(yRange, xRange);
 
 
 
 
                lineChart.Legend.Position = eLegendPosition.Top;
                lineChart.SetSize(1620, 350);
                lineChart.SetPosition(2 + 20 * i, 0, 1, 0);
 
                string specialRange = "";
                string xRanges = "";
                for (int j = 0; j < 100; j++)
                {
                    if (j % 30 == 0)
                    {
                        specialRange += $"A{li.Count + 1}:A{(li.Count + 1)},";
                        xRanges += $"B{j + 1},";
                    }
                    else
                    {
                        specialRange += $"Z{j + 1}:Z{(j + 1)},";
                        xRanges += $"B{j + 1},";
                    }
                }
 
                specialRange = specialRange.TrimEnd(',');
                xRanges = xRanges.TrimEnd(',');
                var xychart = lineChart.PlotArea.ChartTypes.Add(eChartType.ColumnClustered) as ExcelBarChart;
                xychart.GapWidth = 500;
 
                var newSeries = xychart.Series.Add(ws.Cells[specialRange], ws.Cells[xRanges]);
                newSeries.Fill.Color = Color.Red;
 
                package.Save();
            }
            Console.WriteLine("ok");
            Console.Read();
        }
 
 
        public class MyData
        {
            public int X { get; set; }
 
 
            public int Y { get; set; }
 
            public int Z { get; set; }
        }
    }
} 

 

效果图:

 

posted @   灰主流  阅读(140)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
历史上的今天:
2016-06-27 C#将图片背景从透明变成白色
点击右上角即可分享
微信分享提示