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();
        }
    }
}
相关推荐
丈剑走天涯2 小时前
基于 Python 3 语法的 PyCharm 练习示例,涵盖列表操作、类型判断及数据清洗等核心知识点
windows·python·pycharm
AxureMost2 小时前
Dopamine 3.0.10 音乐播放器
windows
MayZork2 小时前
Windows 与 Linux 下 vcpkg 的安装部署指南
linux·运维·windows
Source.Liu3 小时前
【Dioxus】Windows 环境下 Rust + Dioxus 安装配置笔记
windows·rust·dioxus
落魄大学生之流水线上谋生计3 小时前
LangGraph 基本用法指南
java·windows·python·langchain
sukalot4 小时前
windows 驱动实例分析系列: libusb驱动分析-应用层源码篇(三)
windows·驱动开发
格林威7 小时前
C# 相机Burst模式图像采集:使用相机内存配合OpenCvSharp和Halcon实现短时间的高速采集的方法
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
J总裁的小芒果7 小时前
参数过多-分批传参
c#
sxd20018 小时前
Vmware和multicast
linux·windows·vmware·无线桥接·multicast
典典分享指南8 小时前
短视频分镜提示词:让 AI 出片的产品口播
java·c#·bash·composer·symfony