C#创建带颜色的Excel

1、定义了两个类:DownloadColorDTO 和 ColorDTO,用于存储数据和颜色信息。

2、在 Main 方法中,创建了两个 ColorDTO 列表,并将它们添加到 DownloadColorDTO 对象中。

3、设置了 OfficeOpenXml 的许可证为非商业用途。

4、创建了一个 Excel 文件,并添加了一个名为 "Sheet1" 的工作表。

5、遍历 DownloadColorDTO 对象中的数据,将值填充到 Excel 单元格中,并根据提供的颜色代码设置单元格的背景色。

6、保存了 Excel 文件。

javascript 复制代码
/*
1、打开您的 .NET 项目。
2、在解决方案资源管理器中,右键点击项目的"依赖项"或"引用"节点。
3、选择"管理 NuGet 包..."。
4、在 NuGet 包管理器中,搜索 EPPlus。
5、选择 EPPlus 包,然后点击"安装"。
 */
using OfficeOpenXml;
using System;
using System.Collections.Generic;
using System.IO;

public class DownloadColorDTO
{
    public List<List<ColorDTO>> Datas { get; set; }

    public string Name { get; set; }
}

public class ColorDTO
{
    public string Color { get; set; }

    public string Value { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        List<ColorDTO> datas1 = new List<ColorDTO>()
        {
            new ColorDTO() { Color = "#FFF000", Value = "第一行第一列" },
            new ColorDTO() { Color = "#FF0F00", Value = "第一行第二列" },
            new ColorDTO() { Color = "#FF00F0", Value = "第一行第三列" },
            new ColorDTO() { Color = "#FF000F", Value = "第一行第四列" }
        };

        List<ColorDTO> datas2 = new List<ColorDTO>()
        {
            new ColorDTO() { Color = "#FFF000", Value = "第二行第一列" },
            new ColorDTO() { Color = "#FF0F00", Value = "第二行第二列" },
            new ColorDTO() { Color = "#FF00F0", Value = "第二行第三列" },
            new ColorDTO() { Color = "#FF000F", Value = "第二行第四列" }
        };

        var result = new DownloadColorDTO() { Datas = new List<List<ColorDTO>>() { datas1, datas2 } };
        // 设置许可证上下文
        ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
        // 创建Excel文件
        var fileInfo = new FileInfo(@"\file.xlsx");

        using (var package = new ExcelPackage(fileInfo))
        {
            // 添加一个工作表
            var worksheet = package.Workbook.Worksheets.Add("Sheet1");

            var row = 1;
            foreach (var rows in result.Datas)
            {
                var col = 1;
                foreach (var item in rows)
                {
                    worksheet.Cells[row, col].Value = item.Value;
                    worksheet.Cells[row, col].Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid;
                    worksheet.Cells[row, col].Style.Fill.BackgroundColor.SetColor(System.Drawing.ColorTranslator.FromHtml(item.Color));
                    col++;
                }
                row++;
            }
            // 保存Excel文件
            package.Save();
        }
    }
}
相关推荐
磊灬泽5 小时前
【日常错误】鼠标无反应
linux·windows
ccut 第一混6 小时前
c# 调用basler 相机
c#·halcon·basler
TomCode先生6 小时前
c#动态树形表达式详解
开发语言·c#
UNbuff_012 小时前
Windows netstat 命令使用说明
windows
您的通讯录好友13 小时前
conda环境导出
linux·windows·conda
上位机付工15 小时前
C#与倍福TwinCAT3进行ADS通信
开发语言·c#
土了个豆子的16 小时前
02.继承MonoBehaviour的单例模式基类
开发语言·visualstudio·单例模式·c#·里氏替换原则
疯狂的维修16 小时前
c#中public类比博图
c#·自动化
子兮曰17 小时前
🔥C盘告急!WSL磁盘暴增?三招秒清20GB+空间
前端·windows·docker
学历真的很重要18 小时前
Claude Code Windows 原生版安装指南
人工智能·windows·后端·语言模型·面试·go