C#基础:用ClosedXML实现Excel写入

直接在控制台输出,确保安装了该第三方库

using ClosedXML.Excel;

class DataSource
{
    public int id {  get; set; }
    public string name { get; set; } = "";
    public string classes { get; set; } = "";
    public int score { get; set; }
}
class Test
{
    public static void SetBorder(IXLRange range)
    {
        // 设置表格框线
        range.Style.Border.TopBorder = XLBorderStyleValues.Thin;
        range.Style.Border.InsideBorder = XLBorderStyleValues.Thin;
        range.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
        range.Style.Border.LeftBorder = XLBorderStyleValues.Thin;
        range.Style.Border.RightBorder = XLBorderStyleValues.Thin;
        range.Style.Border.BottomBorder = XLBorderStyleValues.Thin;

        // 设置表格框线颜色和粗细
        var borderColor = XLColor.Black;
        range.Style.Border.OutsideBorderColor = borderColor;
        range.Style.Border.LeftBorderColor = borderColor;
        range.Style.Border.RightBorderColor = borderColor;
        range.Style.Border.TopBorderColor = borderColor;
        range.Style.Border.BottomBorderColor = borderColor;

        range.Style.Border.TopBorder = XLBorderStyleValues.Thin;
        range.Style.Border.InsideBorder = XLBorderStyleValues.Thin;
        range.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
        range.Style.Border.LeftBorder = XLBorderStyleValues.Thin;
        range.Style.Border.RightBorder = XLBorderStyleValues.Thin;
        range.Style.Border.BottomBorder = XLBorderStyleValues.Thin;
        //range.Style.Border.SetBorderWidth(borderWidth);
    }
    static int Main(string[] args)
    {
        //一、生成数据
        List<DataSource> data = GetDataSource();

        //二、填充进Excel(ClosedXML.Excel)
        //(1)填充列表(列名:学生姓名,学生班级,学生成绩)
        //(2)添加一张图片
        using (var workbook = new XLWorkbook())
        {
            #region(1)填充列表
            //1.增加工作表
            var worksheet = workbook.Worksheets.Add("Sheet1");

            //1-2.设计样式
            // 调整第二列的列宽为20
            worksheet.Column(2).Width = 20;
            // 调整第四行的行高为15
            worksheet.Row(4).Height = 15;
            // 设置A1-C1的背景颜色为淡绿色
            worksheet.Range("A1:C1").Style.Fill.BackgroundColor = XLColor.LightGreen;
            // 设置A1-C11增加表格框
            SetBorder(worksheet.Range("A1:C11"));
            // 设置第一行垂直居中对齐和水平居中对齐
            worksheet.Row(1).Style.Alignment.Vertical = XLAlignmentVerticalValues.Center;
            worksheet.Row(1).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;

            //2.填充列表(列名:学生姓名,学生班级,学生成绩)
            worksheet.Cell("A1").Value = "学生姓名";
            worksheet.Cell("B1").Value = "学生班级";
            worksheet.Cell("C1").Value = "学生成绩";

            //3.填充数据
            int rowIndex = 2;
            foreach (var item in data)
            {
                worksheet.Cell($"A{rowIndex}").Value = item.name;
                worksheet.Cell($"B{rowIndex}").Value = item.classes;
                worksheet.Cell($"C{rowIndex}").Value = item.score;
                rowIndex++;
            }
            #endregion

            #region (2)添加一张图片
            worksheet.AddPicture("F:\\C_program\\test2\\files\\dog.png").MoveTo(worksheet.Cell("A20"));
            #endregion

            //保存excel文件
            workbook.SaveAs("F:\\C_program\\test2\\files\\data.xlsx");//存储路径
        }
        return 0;
    }

    private static List<DataSource> GetDataSource()
    {
        List<DataSource> data = new List<DataSource>();
        Random random = new Random();
        for (int i = 0; i < 10; i++)
        {
            DataSource item = new DataSource();
            item.id = i + 1;
            item.name = $"Student{i + 1}";
            int classNumber = random.Next(201, 204);
            item.classes = $"计算机{classNumber}";
            item.score = random.Next(50, 101);

            data.Add(item);
        }
        return data;
    }
}

实现效果:

相关推荐

  1. pandas,写入内容到excel工作表的问题】

    2024-01-24 14:04:03       60 阅读
  2. 怎样pandas把list数据写入excl文件?

    2024-01-24 14:04:03       47 阅读
  3. OpenPyXL 写入 Excel 文件

    2024-01-24 14:04:03       25 阅读
  4. golang:Excel写入mysql数据库

    2024-01-24 14:04:03       67 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-24 14:04:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-24 14:04:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-24 14:04:03       87 阅读
  4. Python语言-面向对象

    2024-01-24 14:04:03       96 阅读

热门阅读

  1. 蒙特卡洛方法概述

    2024-01-24 14:04:03       55 阅读
  2. Golang中int, int8, int16, int32, int64和uint区别

    2024-01-24 14:04:03       52 阅读
  3. 02_正则表达式的应用

    2024-01-24 14:04:03       49 阅读
  4. Flowable使用docker中MySQL8,Springboot启动出错

    2024-01-24 14:04:03       57 阅读
  5. el-select选项过多导致页面卡顿,路由跳转卡顿

    2024-01-24 14:04:03       49 阅读
  6. 机器的世界模型与人类的世界模型

    2024-01-24 14:04:03       51 阅读
  7. 【Spring Boot 3】【JPA】枚举类型持久化

    2024-01-24 14:04:03       52 阅读
  8. ES6笔记-symbol

    2024-01-24 14:04:03       50 阅读
  9. 最小生成树 prim + kruskal

    2024-01-24 14:04:03       44 阅读
  10. NLP自然语言处理介绍

    2024-01-24 14:04:03       50 阅读
  11. 2024.1.20 Python学习笔记7:字符串常见处理函数

    2024-01-24 14:04:03       51 阅读
  12. C++中模板的使用

    2024-01-24 14:04:03       57 阅读