C#使用Spire.XLS for .NET将DataTable写入Excel的具体步骤

 更新时间:2025年08月29日 09:01:40   作者:用户835629078051  
在日常开发中,我们经常需要将 DataTable 中的数据导出到 Excel 文件中,方便用户查看或进行后续分析,本文将介绍如何使用 Spire.XLS for .NET 实现这一功能,需要的朋友可以参考下

引言

在日常开发中,我们经常需要将 DataTable 中的数据导出到 Excel 文件中,方便用户查看或进行后续分析。本文将介绍如何使用 Spire.XLS for .NET 实现这一功能,包括:

  • 普通写入:直接将 DataTable 写入 Excel。
  • 格式设置:对导出的 Excel 进行样式美化。

一、准备工作

首先,在 C# 项目中引用 Spire.XLS for .NET 程序集(Spire.Xls.dll)。
引用完成后,即可开始编写代码。

二、创建测试用 DataTable

在示例中,我们先构造一个简单的 DataTable 用于演示。

using System;
using System.Data;

public static DataTable GetSampleData()
{
    DataTable dt = new DataTable();
    dt.Columns.Add("编号", typeof(int));
    dt.Columns.Add("姓名", typeof(string));
    dt.Columns.Add("成绩", typeof(double));

    dt.Rows.Add(1, "张三", 88.5);
    dt.Rows.Add(2, "李四", 92.0);
    dt.Rows.Add(3, "王五", 76.3);

    return dt;
}

三、普通写入 DataTable 到 Excel

普通写入是最简单的方式,不涉及复杂格式,只是把数据原封不动写入到 Excel 中。

using Spire.Xls;
using System.Data;

class Program
{
    static void Main()
    {
        // 获取示例数据
        DataTable dataTable = GetSampleData();

        // 创建 Workbook
        Workbook workbook = new Workbook();
        Worksheet sheet = workbook.Worksheets[0];

        // 将 DataTable 写入工作表(true 表示包含列名)
        sheet.InsertDataTable(dataTable, true, 1, 1);

        // 保存 Excel 文件
        workbook.SaveToFile("普通写入.xlsx", ExcelVersion.Version2016);
    }
}

说明:

  • InsertDataTable 方法可将 DataTable 快速写入 Excel。
  • 第三个参数 true 表示首行写入列名。

运行后即可得到一个简单的 Excel 文件,第一行是列标题,下面是对应的数据。

四、带格式设置的写入

在很多实际场景中,我们希望导出的 Excel 更易读,比如标题加粗、列宽自动适应、边框等。

using Spire.Xls;
using System.Data;
using System.Drawing;

class Program
{
    static void Main()
    {
        DataTable dataTable = GetSampleData();

        Workbook workbook = new Workbook();
        Worksheet sheet = workbook.Worksheets[0];

        // 写入数据
        sheet.InsertDataTable(dataTable, true, 1, 1);

        // 获取标题行范围
        CellRange titleRange = sheet.Range[1, 1, 1, dataTable.Columns.Count];
        titleRange.Style.Font.IsBold = true;  // 加粗
        titleRange.Style.HorizontalAlignment = HorizontalAlignType.Center; // 居中
        titleRange.Style.Color = Color.LightGray; // 背景色

        // 给所有单元格加边框
        CellRange allRange = sheet.Range[1, 1, dataTable.Rows.Count + 1, dataTable.Columns.Count];
        allRange.BorderInside(LineStyleType.Thin, Color.Black);
        allRange.BorderAround(LineStyleType.Thin, Color.Black);

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

        workbook.SaveToFile("格式化写入.xlsx", ExcelVersion.Version2016);
    }
}

格式说明:

  • 标题样式:加粗、居中、背景色。
  • 边框:内外边框统一设置为黑色细线。
  • 列宽AutoFitColumns() 自动调整列宽以适应内容。

运行后,生成的 Excel 文件不仅包含数据,还具有更美观的格式,方便阅读。

五、总结

本文介绍了如何使用 Spire.XLS for .NET 将 DataTable 写入 Excel 文件:

  1. 普通写入:简单快速,适合临时数据导出。
  2. 格式化写入:通过调整字体、颜色、边框和列宽,让数据更加美观易读。

无论是普通导出还是格式化处理,Spire.XLS for .NET 都提供了简洁易用的 API,帮助开发者高效完成 Excel 生成任务。

到此这篇关于C#使用Spire.XLS for .NET将DataTable写入Excel的具体步骤的文章就介绍到这了,更多相关C# DataTable写入Excel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#中XML基础用法

    C#中XML基础用法

    可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。这篇文章介绍了C#中XML基础的用法,下面的实例代码,大家可以看看
    2021-12-12
  • C#实现截图帮助类

    C#实现截图帮助类

    这篇文章介绍了C#实现截图帮助类的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • C#实现判断字符串中是否包含中文的方法

    C#实现判断字符串中是否包含中文的方法

    这篇文章主要介绍了C#实现判断字符串中是否包含中文的方法,非常实用的功能,需要的朋友可以参考下
    2014-08-08
  • c#多进程通讯的实现示例

    c#多进程通讯的实现示例

    本文主要介绍了c#多进程通讯的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • 如何在C# 中使用 FFmpeg.NET

    如何在C# 中使用 FFmpeg.NET

    这篇文章主要介绍了如何在C# 中使用 FFmpeg.NET,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • C#实现的Windows剪贴板监视器功能实例【附demo源码下载】

    C#实现的Windows剪贴板监视器功能实例【附demo源码下载】

    这篇文章主要介绍了C#实现的Windows剪贴板监视器功能,结合实例形式分析了C#实现剪贴板监视功能所涉及的相关Windows API函数与使用技巧,需要的朋友可以参考下
    2016-08-08
  • C#实现外排序的示例代码

    C#实现外排序的示例代码

    本文介绍了C#中的外排序技术,以及如何使用C#实现外排序算法,通过使用排序算法,可以对大量数据进行排序,并且可以有效地处理超大数据集,感兴趣的可以了解下
    2023-11-11
  • C#串口编程实例代码

    C#串口编程实例代码

    这篇文章主要为大家详细介绍了C#串口编程实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • C# Dynamic之:ExpandoObject,DynamicObject,DynamicMetaOb的应用(下)

    C# Dynamic之:ExpandoObject,DynamicObject,DynamicMetaOb的应用(下)

    本篇文章是对C#中ExpandoObject,DynamicObject,DynamicMetaOb的应用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C#如何访问共享文件夹或者磁盘

    C#如何访问共享文件夹或者磁盘

    这篇文章主要为大家详细介绍了C#访问共享文件夹或者磁盘,需要用户名密码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05

最新评论