使用 C# 将 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 用于演示。

csharp 复制代码
    
    
    
  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 中。

csharp 复制代码
    
    
    
  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 更易读,比如标题加粗、列宽自动适应、边框等。

ini 复制代码
    
    
    
  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. 普通写入:简单快速,适合临时数据导出。
    1. 格式化写入:通过调整字体、颜色、边框和列宽,让数据更加美观易读。

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

相关推荐
过期的秋刀鱼!1 小时前
Excel-数据分析开发心得(工具PQ,PP)与开发经验
大数据·数据分析·excel·模型搭建·数据优化·powerquery·powerpivot
凯子坚持 c1 小时前
CodeRider-Kilo 驱动下的 Python Excel 自动化开发全流程深度解析
python·自动化·excel
啊哈哈哈哈啊有19 小时前
导出树形结构,excel
java·windows·excel
Dxy12393102161 天前
Elasticsearch 聚合入门:像 Excel 透视表一样分析数据
elasticsearch·excel
一位代码1 天前
Excel | .xls 与 .xlsx 文件的区别及使用 Excel 打开 CSV 文件出现乱码的解决办法
excel
CodeCraft Studio1 天前
Excel处理控件Aspose.Cells教程:使用C#在Excel中创建树状图
前端·c#·excel·aspose·c# excel库·excel树状图·excel sdk
悟能不能悟1 天前
vue导出excel文件
前端·vue.js·excel
CodeCraft Studio1 天前
国产化Excel开发组件Spire.XLS教程:以Python编程方式在Excel中高亮重复值
开发语言·python·excel·spire.xls·excel自动化·excel高亮重复值·python处理excel
喝汽水的猫^2 天前
Java实现Excel 导出(多 Sheet、复杂格式)
java·excel
小费的部落2 天前
Excel 在Sheet3中 匹配Sheet1的A列和Sheet2的A列并处理空内容
java·前端·excel