使用C#实现DataTable和Excel的数据互转

 更新时间:2025年12月18日 08:15:30   作者:LSTM97  
在现代应用程序中,表格数据处理是一项基本功能,使用 C# 和 Spire.XLS for .NET 库,我们可以方便地实现 DataTable 和 Excel 之间的数据互转,下面我们就来看看具体实现方法吧

在现代应用程序中,表格数据处理是一项基本功能。使用 C# 和 Spire.XLS for .NET 库,我们可以方便地实现 DataTable 和 Excel 之间的数据互转。本文将介绍如何将 DataTable 数据写入 Excel 表格,以及如何将 Excel 数据读取到 DataTable 中。

什么是 Spire.XLS for .NET

Spire.XLS for .NET 是一款强大的 Excel 文件处理组件,支持 .NET 应用程序中对 Excel 文件的创建、读取、编辑和转换。它可以让开发者轻松实现 Excel 文件的各种操作,无需依赖 Microsoft Excel 的安装。该库支持 Excel 2003、2007、2010、2013、2016 等版本的文件格式,具有高性能和丰富的功能,适用于开发报表、数据分析和数据导入导出等应用。

Spire.XLS 的主要功能

  • 创建和编辑 Excel 文件 :可以动态生成 Excel 文件,并对其内容进行修改。
  • 读取 Excel 数据 :能够快速读取 Excel 文件中的数据,并将其导入到 DataTable或其他数据结构中。
  • 格式设置 :支持单元格样式、字体颜色、表格样式等设置。
  • 图表与图片 :可以在 Excel 文件中插入图表和图片。
  • 支持多种格式 :包括 .xlsx、.xls、.xlsm、.csv 等多种文件格式。

如何安装 Spire.XLS for .NET

安装 Spire.XLS for .NET 非常简单,以下是几种常用的安装方法:

1. 使用 NuGet 包管理器

这是最常用的方法,只需在项目中运行以下命令:

Install-Package Spire.XLS

2. 使用 Visual Studio

  • 打开 Visual Studio,进入你的项目。
  • 右键点击解决方案资源管理器中的项目名称,选择 “管理 NuGet 包”
  • “浏览” 选项卡中,搜索 “Spire.XLS”
  • 选择 Spire.XLS 后,点击 “安装”

3. 手动下载

如果您更倾向于手动安装,可以访问 Spire.XLS 官方网站下载相应的 DLL 文件。下载后,将 DLL 文件添加到您的项目引用中。

安装完成后,您就可以在 C# 项目中开始使用 Spire.XLS 进行 Excel 文件的处理了。

一、将 DataTable 写入 Excel

以下是实现将 DataTable 中的数据写入 Excel 文件的步骤和示例代码。

代码示例

using System.Data;
using Spire.Xls;

namespace WriteDataTableToExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 实例
            Workbook workbook = new Workbook();

            // 移除默认工作表
            workbook.Worksheets.Clear();

            // 添加工作表并命名
            Worksheet worksheet = workbook.Worksheets.Add("InsertDataTable");

            // 创建 DataTable 对象
            DataTable dataTable = new DataTable();
            dataTable.Columns.Add("No", typeof(Int32));
            dataTable.Columns.Add("Name", typeof(String));
            dataTable.Columns.Add("City", typeof(String));

            // 添加行与数据
            DataRow dr = dataTable.NewRow();
            dr[0] = 1; dr[1] = "Tom"; dr[2] = "New York"; dataTable.Rows.Add(dr);
            dr = dataTable.NewRow();
            dr[0] = 2; dr[1] = "Jerry"; dr[2] = "Huston"; dataTable.Rows.Add(dr);
            dr = dataTable.NewRow();
            dr[0] = 3; dr[1] = "Dave"; dr[2] = "Florida"; dataTable.Rows.Add(dr);

            // 写入 DataTable 到工作表
            worksheet.InsertDataTable(dataTable, true, 1, 1, true);

            // 保存到 Excel 文件
            workbook.SaveToFile("InsertDataTable.xlsx", ExcelVersion.Version2016);

            // 释放资源
            workbook.Dispose();
        }
    }
}

代码解析

  • 建立一个 Workbook 实例,并清除默认工作表。
  • 创建一个 DataTable,定义列,并插入数据。
  • 使用 InsertDataTable 方法,将 DataTable 写入 Excel。
  • 最后,调用 SaveToFile 方法将数据保存在 Excel 文件中。

二、将 Excel 数据读取到 DataTable

接下来,我们将介绍如何将 Excel 文件的数据读入到 DataTable 中。

代码示例

using Spire.Xls;
using System.Data;
using System.Windows.Forms;

namespace ReadExcelIntoDataTable
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // 创建 Workbook 对象
            Workbook wb = new Workbook();

            // 加载现有的 Excel 文件
            wb.LoadFromFile("C:\Users\Administrator\Desktop\Input.xlsx");

            // 获取第一个工作表
            Worksheet sheet = wb.Worksheets[0];

            // 将工作表的数据导出到 DataTable
            DataTable dataTable = sheet.ExportDataTable();

            // 将 DataTable 绑定到 DataGridView
            dataGridView1.DataSource = dataTable;

            // 释放资源
            wb.Dispose();
        }
    }
}

代码解析

  • 创建 Workbook 实例并加载指定的 Excel 文件。
  • 获取第一个工作表,并调用 ExportDataTable 方法导出数据。
  • 将导出的 DataTable 绑定到 DataGridView 控件,以便在界面上展示。
  • 最后,释放 Workbook 资源。

总结

通过使用 Spire.XLS for .NET 库,我们可以轻松实现 DataTable 和 Excel 之间的数据互转。无论是在数据分析、报表生成,还是在数据处理过程中,这种方法都大大提高了开发效率。

到此这篇关于使用C#实现DataTable和Excel的数据互转的文章就介绍到这了,更多相关C# DataTable和Excel数据互转内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • .net2.0+ Winform项目实现弹出容器层

    .net2.0+ Winform项目实现弹出容器层

    在实际工作中,如果能像菜单一样弹出自定义内容,会方便很多,比如查询时,比如下拉列表显示多列信息时,比如在填写某个信息需要查看一些信息树时。这个时候自定义弹出界面就显的非常重要了
    2015-08-08
  • C#中数组初始化、反转和排序用法实例

    C#中数组初始化、反转和排序用法实例

    这篇文章主要介绍了C#中数组初始化、反转和排序用法,涉及C#中数组常见的定义、初始化、排序等操作技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • C#控制台应用程序中输出彩色字体

    C#控制台应用程序中输出彩色字体

    这篇文章主要为大家详细介绍了C#控制台应用程序中输出彩色字体的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Unity UGUI的LayoutElement布局元素组件介绍使用示例

    Unity UGUI的LayoutElement布局元素组件介绍使用示例

    这篇文章主要为大家介绍了Unity UGUI的LayoutElement布局元素组件介绍使用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • 深入了解c# 匿名类型

    深入了解c# 匿名类型

    这篇文章主要介绍了c# 匿名类型的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • C#序列化与反序列化(Serialize,Deserialize)实例详解

    C#序列化与反序列化(Serialize,Deserialize)实例详解

    这篇文章主要介绍了C#序列化与反序列化(Serialize,Deserialize)的方法,实例分析了C#序列化与反序列化的常见技巧,需要的朋友可以参考下
    2015-06-06
  • C#实现自动填充文字内容到指定图片

    C#实现自动填充文字内容到指定图片

    这篇文章主要为大家详细介绍了如何使用C#实现自动填充文字内容到指定图片,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • C#实现磁盘空间实时预警监控功能

    C#实现磁盘空间实时预警监控功能

    在C#中实现虚拟机磁盘空间的预警器,可以通过以下步骤结合系统API、定时任务和日志记录功能,实时监控磁盘使用情况并在达到阈值时触发警报,以下是详细的技术实现和代码示例,需要的朋友可以参考下
    2025-08-08
  • C#基于TCP/IP实现接收并推送数据的小工具

    C#基于TCP/IP实现接收并推送数据的小工具

    这篇文章主要为大家详细介绍了C#如何基于TCP/IP实现接收并推送数据的小工具,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2025-11-11
  • C#连接Excel驱动与示例代码分享

    C#连接Excel驱动与示例代码分享

    这篇文章主要介绍了C#连接Excel驱动与示例代码,需要的朋友可以参考下
    2014-02-02

最新评论