C#使用Spire.XLS for .NET将List数据导出Excel的操作指南

 更新时间:2026年02月15日 08:48:58   作者:用户835629078051  
在现代数据驱动的应用开发中,将程序内存中的数据以结构化的形式呈现给用户是一个普遍的需求,其中,将C# List集合中的数据导出到Excel文件,成为了开发者们经常需要实现的功能,本文将介绍如何使用 Spire.XLS for .NET将 List<T> 数据写入Excel文件,需要的朋友可以参考下

引言

在现代数据驱动的应用开发中,将程序内存中的数据以结构化的形式呈现给用户是一个普遍的需求。其中,将C# List集合中的数据导出到Excel文件,因其良好的可读性、易分享性以及强大的数据分析能力,成为了开发者们经常需要实现的功能。

无论是生成统计报表、导出用户数据、进行数据迁移,还是为BI工具提供数据源,高效且格式友好的Excel导出功能都至关重要。本文将介绍如何使用 Spire.XLS for .NET,通过清晰直观的方式,将 List<T> 数据写入Excel文件。

C#数据导出Excel的典型场景

在实际项目中,常见需求包括:

  • 导出订单数据供财务核对
  • 导出客户信息供销售分析
  • 导出统计结果供管理层查看

Excel作为数据展示与处理的通用工具,其格式控制能力和易操作性,使其成为最常见的数据输出形式之一。

环境准备

在 Visual Studio 中通过 NuGet 安装 Spire.XLS

  1. 右键项目
  2. 选择“管理NuGet程序包”
  3. 搜索 Spire.XLS
  4. 安装

安装完成后即可在代码中引用:

using Spire.Xls;

示例数据模型

public class Product
{
    public int ID { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
    public DateTime ManufactureDate { get; set; }
    public bool IsAvailable { get; set; }
}

核心实现:将 List 数据写入 Excel

using Spire.Xls;
using System;
using System.Collections.Generic;

public class ExcelExporter
{
    public static void ExportProductsToExcel(List<Product> products, string filePath)
    {
        Workbook workbook = new Workbook();
        Worksheet sheet = workbook.Worksheets[0];
        sheet.Name = "产品列表";

        int row = 1;

        // 写入表头
        sheet.Range[row, 1].Value2 = "ID";
        sheet.Range[row, 2].Value2 = "Name";
        sheet.Range[row, 3].Value2 = "Price";
        sheet.Range[row, 4].Value2 = "ManufactureDate";
        sheet.Range[row, 5].Value2 = "IsAvailable";

        row++;

        // 写入数据
        foreach (var product in products)
        {
            sheet.Range[row, 1].Value2 = product.ID;
            sheet.Range[row, 2].Value2 = product.Name;
            sheet.Range[row, 3].Value2 = (double)product.Price;
            sheet.Range[row, 4].Value2 = product.ManufactureDate;
            sheet.Range[row, 5].Value2 = product.IsAvailable;
            row++;
        }

        // 自动调整列宽
        sheet.AllocatedRange.AutoFitColumns();

        // 设置标题样式
        var headerRange = sheet.Range[1, 1, 1, 5];
        headerRange.Style.Font.IsBold = true;
        headerRange.Style.HorizontalAlignment = HorizontalAlignType.Center;

        workbook.SaveToFile(filePath, ExcelVersion.Version2016);
        workbook.Dispose();
    }

    public static void Main(string[] args)
    {
        List<Product> productList = new List<Product>
        {
            new Product { ID = 1, Name = "笔记本电脑", Price = 8999.00M, ManufactureDate = new DateTime(2023, 1, 15), IsAvailable = true },
            new Product { ID = 2, Name = "无线鼠标", Price = 129.50M, ManufactureDate = new DateTime(2023, 3, 10), IsAvailable = true },
            new Product { ID = 3, Name = "机械键盘", Price = 599.00M, ManufactureDate = new DateTime(2022, 11, 20), IsAvailable = false },
            new Product { ID = 4, Name = "显示器", Price = 1999.99M, ManufactureDate = new DateTime(2023, 2, 5), IsAvailable = true },
            new Product { ID = 5, Name = "SSD硬盘", Price = 650.00M, ManufactureDate = new DateTime(2023, 4, 1), IsAvailable = true }
        };

        string outputPath = "ProductsExport.xlsx";
        ExportProductsToExcel(productList, outputPath);
    }
}

导出结果演示:

格式控制与扩展

在实际项目中,往往需要对单元格格式进行控制。例如:

设置日期格式:

sheet.Range[row, 4].Style.NumberFormat = "yyyy-mm-dd";

设置货币格式:

sheet.Range[row, 3].Style.NumberFormat = "¥#,##0.00";

通过单元格对象可以精确控制:

  • 字体
  • 对齐方式
  • 数字格式
  • 背景颜色
  • 边框

实践建议

  • 处理完毕后调用 Dispose() 释放资源
  • 建议使用 try-catch 进行异常处理
  • 大数据量导出时可考虑分批处理
  • 注意数值类型转换(如 decimal 转 double)

总结

通过遍历 List<T> 并使用 sheet.Range[row, column].Value2 写入数据,可以实现清晰、可控且易维护的Excel导出逻辑。

这种方式结构直观,便于扩展格式控制,适用于大多数常见业务场景。结合 Spire.XLS 提供的丰富功能,可以进一步实现图表生成、公式计算、数据验证等高级需求,从而满足更复杂的报表开发场景。

以上就是C#使用Spire.XLS for .NET将List数据导出Excel的操作指南的详细内容,更多关于C#将List数据导出Excel的资料请关注脚本之家其它相关文章!

相关文章

  • c# NPOI 如何在指定单元格导入导出图片

    c# NPOI 如何在指定单元格导入导出图片

    这篇文章主要介绍了c# NPOI 如何在指定单元格导入导出图片,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • c#检测端口是否被占用的简单实例

    c#检测端口是否被占用的简单实例

    这篇文章主要介绍了c#检测端口是否被占用的简单实例,有需要的朋友可以参考一下
    2013-12-12
  • c# 应用NPOI获取Excel中的图片,保存至本地的算法

    c# 应用NPOI获取Excel中的图片,保存至本地的算法

    本文主要介绍了c# 应用NPOI获取Excel中的图片,保存至本地的算法。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • C#中使用反射获取结构体实例及思路

    C#中使用反射获取结构体实例及思路

    一般用反射获取类对象的实例比较简单,只要类有一个无参构造函数或没有显示声明带参的构造函数即可使用
    2013-10-10
  • C#的自定义语法糖的使用详解

    C#的自定义语法糖的使用详解

    这篇文章主要介绍了C#的自定义语法糖的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • C#如何实时获取鼠标坐标及模拟鼠标点击

    C#如何实时获取鼠标坐标及模拟鼠标点击

    这篇文章主要介绍了C#如何实时获取鼠标坐标及模拟鼠标点击问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • 使用TypeScript开发微信小程序的方法

    使用TypeScript开发微信小程序的方法

    TypeScript是C#之父Anders Hejlsberg的又一力作,很多喜欢c#语法的朋友对typescript都爱不释手,今天小编给大家介绍下TypeScript开发微信小程序的方法,感兴趣的朋友一起看看吧
    2016-11-11
  • C# 如何使用批处理启动Windows服务

    C# 如何使用批处理启动Windows服务

    这篇文章主要介绍了C#使用批处理启动Windows服务,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • C#中this指针的用法示例

    C#中this指针的用法示例

    这篇文章主要介绍了C#中this指针的用法,对初学者而言是非常重要的概念,必须加以熟练掌握,需要的朋友可以参考下
    2014-08-08
  • C# List介绍及具体用法

    C# List介绍及具体用法

    这篇文章主要介绍了C# List介绍及具体用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12

最新评论