国产化Excel开发组件Spire.XLS教程:C# 写入 Excel ,轻松将数据导出到工作表

Excel 作为最常用的数据管理与分析工具之一,被广泛应用于各类数据处理场景。在 C# 应用程序开发过程中,无论是生成业务报表、导出数据库查询结果,还是实现自动化办公流程,C# 写入 Excel 的功能都扮演着至关重要的角色。

借助 Spire.XLS for .NET这一强大的第三方库,开发者无需在运行环境中安装 Microsoft Excel,即可高效、灵活地实现 Excel 文件的创建、写入与导出操作。本文将系统讲解如何 使用 C# 写入 Excel 文件 ,包括不同数据类型的插入方法、批量数据写入技巧、文件保存与导出,助力开发者提升数据处理与自动化能力。

Spire.XLS for .NET试用下载,请联系E-iceblue Spire官方授权代理商慧都科技

欢迎加入Spire技术交流Q群(125237868),与更多小伙伴一起提升文档开发技能~

Spire.XLS for .NET 简介与安装

什么是 Spire.XLS for .NET

Spire.XLS for .NET 是由 E-iceblue 开发的一款专业 Excel 库。它允许开发人员在 C# 中写入 Excel 文件,并执行包括创建、编辑、读取和导出 Excel 文档在内的多种操作,而无需安装 Microsoft Excel。

主要功能包括:

  • 通过编程写入和更新 Excel 文件
  • 支持 Excel 格式(XLS、XLSX、CSV、ODS)
  • 提供高级功能,如公式、图表、数据透视表和数据验证
  • 将 Excel 导出为 PDF、HTML 和图片格式
  • 在处理大型数据集时保持高性能,适用于桌面、服务器和 Web 应用程序

如何安装 Spire.XLS for .NET

方式一:通过 NuGet 安装(推荐)

  1. 打开 Visual Studio。
  2. 依次选择 工具 > NuGet 包管理器 > 管理解决方案的 NuGet 包...
  3. 搜索 Spire.XLS 并安装。

或直接使用包管理器控制台:

PM> Install-Package Spire.XLS

方式二:手动安装

  1. 联系慧都科技下载 Spire.XLS 安装包
  2. 在项目中添加对 Spire.Xls.dll的引用。

安装完成后,你就可以在 C# 中开始写入 Excel 了。

如何在 C# 中创建 Excel 文件

第一步是创建一个新的工作簿并添加工作表,示例如下:

using Spire.Xls;namespace CreateNewExcel
{class Program{static void Main(string[] args){// 创建一个新的工作簿Workbook workbook = new Workbook();// 移除默认工作表workbook.Worksheets.Clear();// 添加一个工作表Worksheet sheet = workbook.Worksheets.Add("报告");// 保存空的 Excel 文件workbook.SaveToFile("新建文档.xlsx", ExcelVersion.Version2016);workbook.Dispose();}}
}

此时,你已经成功创建了一个包含名为“报告”的工作表的空 Excel 文件。接下来我们将向其中写入数据。

C# 向 Excel 单元格写入不同数据类型

Spire.XLS 允许你直接将多种数据类型写入 Excel 单元格。常见示例如下:

写入文本

sheet.Range["A1"].Text = "你好 Excel!";

写入数字

sheet.Range["A2"].NumberValue = 123.45;

写入日期和时间

sheet.Range["A3"].DateTimeValue = DateTime.Now;
sheet.Range["A3"].NumberFormat = "yyyy-mm-dd hh:mm";

写入布尔值

sheet.Range["A4"].BooleanValue = true;

写入 TimeSpan

sheet.Range["A5"].TimeSpanValue = new TimeSpan(2, 30, 0);
sheet.Range["A5"].NumberFormat = "[h]:mm:ss";

插入公式

sheet.Range["A6"].Formula = "=SUM(A2,100)";

插入 HTML 格式字符串

string htmlText = "<span style=\"font-family: Times New Roman; color: blue; font-size: 15pt;\">HTML <strong>格式文本</strong></span>";
sheet.Range["A7"].HtmlString = htmlText;

写入通用值

sheet.Range["A8"].Value = "一般数据";

C# 将批量数据写入 Excel 工作表

处理大型数据集时,逐个单元格写入效率很低。Spire.XLS 提供了直接插入数组和 DataTable 的方法,其他数据结构可以先转换为数组或 DataTable。

写入数组到 Excel

使用 Worksheet.InsertArray方法,可以将一维或二维数组写入指定区域:

string[,] data = {{ "姓名", "年龄", "国家" },{ "张三", "30", "中国" },{ "李四", "28", "中国" },{ "王五", "35", "加拿大" }
};sheet.InsertArray(data, 1, 1);

效果图:

写入 DataTable 到 Excel

使用 InsertDataTable方法将 DataTable 数据导入到工作表:

DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("产品", typeof(string));
dt.Columns.Add("价格", typeof(double));dt.Rows.Add(1, "笔记本电脑", 8999);
dt.Rows.Add(2, "平板电脑", 5999);
dt.Rows.Add(3, "手机", 6999);sheet.InsertDataTable(dt, true, 1, 1, true);

效果图:

写入 List 到 Excel

虽然 Spire.XLS 没有直接支持写入 List 的方法,但你可以先将 List 转换为 DataTable,再写入 Excel。

using Spire.Xls;
using System.Data;namespace WriteListToExcel
{class Program{static void Main(string[] args){// 创建一个工作簿实例Workbook workbook = new Workbook();// 移除默认工作表workbook.Worksheets.Clear();// 添加一个工作表并命名Worksheet worksheet = workbook.Worksheets.Add("成绩单");// 创建一个学生数据列表List<Student> students = new List<Student>{new Student("迈克尔", "约翰逊", 20, "计算机科学", 3.8),new Student("莎拉", "威廉姆斯", 22, "数学", 3.6),new Student("杰西卡", "布朗", 19, "物理", 3.9),new Student("大卫", "史密斯", 21, "化学", 3.7),new Student("艾米莉", "戴维斯", 23, "生物", 3.5)};// 将列表转换为数据表DataTable dataTable = ConvertListToDataTable(students);// 将数据表写入工作表worksheet.InsertDataTable(dataTable, true, 1, 1, true);// 设置列宽worksheet.AllocatedRange.ColumnWidth = 12;// 内容左对齐worksheet.AllocatedRange.HorizontalAlignment = HorizontalAlignType.Left;// 保存为Excel文件workbook.SaveToFile("学生成绩单.xlsx", ExcelVersion.Version2016);// 释放资源workbook.Dispose();}static DataTable ConvertListToDataTable(List<Student> students){DataTable dataTable = new DataTable();// 添加列dataTable.Columns.Add("名字", typeof(string));dataTable.Columns.Add("姓氏", typeof(string));dataTable.Columns.Add("年龄", typeof(int));dataTable.Columns.Add("专业", typeof(string));dataTable.Columns.Add("绩点", typeof(double));// 添加行foreach (var student in students){DataRow row = dataTable.NewRow();row["名字"] = student.FirstName;row["姓氏"] = student.LastName;row["年龄"] = student.Age;row["专业"] = student.Major;row["绩点"] = student.GPA;dataTable.Rows.Add(row);}return dataTable;}}class Student{public string FirstName { get; set; }public string LastName { get; set; }public int Age { get; set; }public string Major { get; set; }public double GPA { get; set; }public Student(string firstName, string lastName, int age, string major, double gpa){FirstName = firstName;LastName = lastName;Age = age;Major = major;GPA = gpa;}}
}

效果图:

保存和导出 Excel 文件

写入数据后,你需要保存或导出 Excel 文件。Spire.XLS 支持多种格式(XLSX、CSV、PDF 等):

// 保存为 XLSX
workbook.SaveToFile("Output.xlsx", ExcelVersion.Version2016);// 保存为 CSV
workbook.SaveToFile("Output.csv", ",", Encoding.UTF8);// 导出为 PDF
workbook.SaveToFile("Output.pdf", FileFormat.PDF);

在 Web 应用中,还可以将文件保存到 MemoryStream:

using (MemoryStream ms = new MemoryStream())
{workbook.SaveToStream(ms, FileFormat.Version2016);// 可写入到 ASP.NET Response
}

常见问题与解决方案

  1. 日期/时间格式错误

    • 问题:日期/时间显示为序列号。
    • 解决办法:设置正确的单元格格式。
  2. 数据覆盖或错位

    • 问题:数组或 DataTable 写入时覆盖现有数据。
    • 解决办法:检查 InsertArray/InsertDataTable 的起始行列参数。
  3. 大数据集写入性能低

    • 问题:数千行写入速度慢。
    • 解决办法:使用批量写入方法,避免逐单元格写入。
  4. 公式未正确计算

    • 问题:写入的公式未返回预期结果。
    • 解决办法:检查公式语法,必要时调用 workbook.CalculateAllValue()。

总结

在 C# 中实现 Excel 写入功能既直观又高效。借助 Spire.XLS for .NET,无论是写入单个数值、文本、日期,还是处理大规模结构化数据集,都能轻松胜任。该库不仅支持单元格样式、公式计算、条件格式等高级功能,还能精准控制输出效果,确保最终生成的 Excel 文件数据准确、外观专业。

通过数组或 DataTable 进行批量数据写入,可大幅提升数据输出效率,灵活应对不同体量的数据导出需求。若你正在寻找一种稳定、高效且无需依赖 Microsoft Excel 环境的文件生成方案,Spire.XLS for .NET 无疑是一个理想的技术选择。

Spire.XLS for .NET试用下载,请联系E-iceblue Spire官方授权代理商慧都科技

欢迎加入Spire技术交流Q群(125237868),与更多小伙伴一起提升文档开发技能~

常见问答(FAQs)

Q1. 我能用 Spire.XLS 写入已有的 Excel 文件吗?

可以。使用 workbook.LoadFromFile("file.xlsx") 打开文件,然后修改并保存。

Q2. Spire.XLS 是否需要安装 Microsoft Excel?

不需要,它是一个独立库。

Q3. Spire.XLS 能处理包含成千上万行的大文件吗?

可以,它针对大数据集做了性能优化。

Q4. 写入数据时如何设置单元格样式?

你可以通过以下方式设置字体、颜色、边框和对齐方式:

sheet.Range["A1"].Style.Font.IsBold = true;
sheet.Range["A1"].Style.Color = Color.Yellow;
sheet.Range["A1"].Style.HorizontalAlignment = HorizontalAlignType.Left;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920521.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式专题——23 Kafka日志索引详解 - 指南

分布式专题——23 Kafka日志索引详解 - 指南2025-09-28 10:38 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: bl…

Agent的九种设计模式 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

牛客刷题-Day6

动态规划1:线性dp、背包问题,区间 https://ac.nowcoder.com/acm/contest/24213?from=acdiscuss牛客刷题-Day5 今日刷题:\(1026-1030\) 1026 合并回文子串 题目描述 输入两个字符串 \(A\) 和 \(B\),合并成一个串 \…

长治网站制作小程序企业网站 响应式 案例

维秘柔情内裤性感/舒适/健康/透气 复制代码 维秘柔情不仅仅是商品质材料和考究的设计&#xff0c;更是一个坚守生活美学的理念&#xff0c;总有一款维秘柔情告诉你的身体密码。从此之前所用&#xff0c;皆为将就。从此之前所见&#xff0c;皆为平常。 在内裤不再是遮掩的这个时…

临潼城市建设局网站珠海建设网站的公司哪家好

洞悉技术的本质&#xff0c;享受科技的乐趣 第一篇&#xff0c;我的感受就是 耗叔是一个热爱技术&#xff0c;可以通过代码找到快乐的技术人。 作为it从业者&#xff0c;我们如何可以通过代码找到快乐呢&#xff1f;这是一个问题&#xff1f; 至少目前&#xff0c;我还没有这种…

python占用指定比例CPU

# author: xiaoyang # date: 2025/09/28import os import sys import time from multiprocessing import Processdef ac_cpu(timeout=None):t0 = time.time()while timeout and time.time() - t0 < timeout:1024 **…

Modbus RTU TCP 拓扑

Modbus RTU TCP 拓扑关键词:Modbus-RTU-Master&Modbus-RTU-Slave, station Modbus-TCP-Server&Modbus-TCP-Client Socket-TCP-Server&TCP-Client, host

数字化转型浪潮下:10款主流项目管理工具横向测评与选型指南

数字化转型浪潮下:10款主流项目管理工具横向测评与选型指南 在数字化转型加速推进的当下,项目管理工具已成为企业提升协作效率的关键基础设施。根据Gartner最新调研数据显示,2023年全球项目管理软件市场规模已达59.…

借助Aspose.Email,使用 Python 将 EML 转换为 MHTML

如果您正在寻找编程式​​电子邮件文件处理方法,那么本指南非常适合您。Aspose.Email是一个强大的电子邮件文件转换 SDK。它提供电子邮件管理、编辑和转换功能。在本篇教程中,我们将学习如何借助Aspose.Emai使用 Pyt…

简述电子商务网站开发的基本流程总部在深圳的互联网公司

来源&#xff1a;物联网智库整理发布摘要&#xff1a;当互联网的上半场结束之后&#xff0c;所有的互联网下半场都是重生意。随着AIoT越来越热门&#xff0c;这一概念已然成为巨头、资本以及新兴企业竞相角逐的热点。2019年注定是AIoT具有重要发展的一年&#xff0c;仅仅在刚过…

python+springboot+django/flask的医院食堂订餐系统 菜单发布 在线订餐 餐品管理与订单统计系统 - 教程

python+springboot+django/flask的医院食堂订餐系统 菜单发布 在线订餐 餐品管理与订单统计系统 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: bl…

计算机网络学习笔记 - 浪矢

最近在看b站计算机网络微课堂的课,对我一个数学系的学生而言,感觉讲的非常生动形象,所以忍不住做了点笔记。 首先是计算机网络体系结构的划分:包括OSI体系结构和TCP/IP体系结构,OSI结构是将网络接口层细分为了物理…

数据结构以及LeetCode常用方法 - 浪矢

序: 马上要秋招了,作为一个数学系的学生想找一份研发类的工作确实需要做一些准备,现在开始重新梳理一下CS的知识。首先,从高中学NOIP常用的数据结构开始吧,从易到难慢慢来~ 目录存储结构数组链表常用方法线性数据…

App Store 上架完整流程解析,iOS 应用发布步骤、ipa 文件上传工具、TestFlight 测试与苹果审核经验

本文全面解析 App Store 上架流程,涵盖账号注册、证书管理、应用打包、ipa 文件上传、TestFlight 测试到苹果审核与发布的完整步骤,结合实战案例,总结高效实用的 iOS 应用发布经验。在移动互联网行业中,App Store …

使用 Zig 编写英文数字验证码识别工具

一、项目概述 英文数字验证码识别是一项实用性强的图像处理任务,常见于反自动化注册与安全验证系统中。本项目使用 Zig 语言调用外部 OCR 引擎(Tesseract),并进行基础文件读写与错误处理,完成验证码识别功能。 二…

建设部勘察设计网站建筑八大员证有哪些

在软件开发领域&#xff0c;敏捷开发和V模型开发是两种主要的开发方法。它们之间的差异主要体现在开发过程的结构和组织方式上。在以下讨论中&#xff0c;我们将深入探讨这两种方法的特点和差异。 敏捷开发 敏捷开发是一种迭代和增量的软件开发方法&#xff0c;它强调灵活性和…

北京矿建建设集团有限公司 网站搜索引擎推广的效果

2017年10月25日中圳德兴(北京)防锈材料有限公司成为美国RUST-X中国总经销商。RUST-X采用先进的VCI气相防锈技术自主研发一系列VCI气相防锈产品&#xff0c;产品主要特点是&#xff1a;具有接触防锈和不接触防锈双重保护屏障,所有产品均无毒、环保、可生物降解。RUST-X拥有500多…

怎么用ppt做网站网站建设职位有什么

文章目录 《TVM编译器原理与实践》编辑推荐内容简介作者简介目录前言/序言获取方式 随着人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;在全世界信息产业中的广泛应用&#xff0c;深度学习模型已经成为推动AI技术革命的关键。TensorFlow、PyTorch、MX…

可口可乐网站建设目的丽江建设工程信息网站

驱动 以来内核编译&#xff0c;依赖内核执行 驱动可以同时执行多份代码 没main 驱动是依赖内核的框架和操作硬件的过程 一&#xff0c;Linux系统组成 app: [0-3G] ---------------------------------系统调用&#xff08;软中断…