当前位置: 代码网 > it编程>编程语言>Asp.net > 使用C#导出Excel数据并保存多种格式的完整示例

使用C#导出Excel数据并保存多种格式的完整示例

2025年11月23日 Asp.net 我要评论
引言在现代企业信息化管理中,excel 已经成为最常用的数据存储和分析工具。从员工信息表、销售数据报表到财务分析表,几乎所有部门都离不开 excel。然而,在实际业务中,我们往往需要将系统中的数据动态

引言

在现代企业信息化管理中,excel 已经成为最常用的数据存储和分析工具。从员工信息表、销售数据报表到财务分析表,几乎所有部门都离不开 excel。然而,在实际业务中,我们往往需要将系统中的数据动态生成 excel 文件,而不是手动录入。手动操作不仅效率低,而且容易出错,对于需要批量生成报表、进行定期统计或对外发布数据的场景尤其不适用。

为了解决这一问题,c# 开发者可以借助 free spire.xls for .net,通过代码快速创建 excel 文件、填充数据、应用样式,并将文件导出为多种格式,包括 xlsx、csv、pdf,甚至直接保存到内存流以便网络传输。本文将通过一个完整示例,详细演示如何在 c# 中实现 excel 数据导出,让你的报表生成工作既高效又专业。

1. 安装 spire.xls

在开始编码前,需要通过 nuget 安装 spire.xls:

install-package freespire.xls

安装完成后,即可在 c# 项目中引用命名空间:

using spire.xls;
using system.data;
using system.io;

2. 创建工作簿和填充数据

下面示例演示如何创建一个 excel 文件,并将员工信息填充到工作表中:

// 创建工作簿
workbook workbook = new workbook();
worksheet sheet = workbook.worksheets[0];
sheet.name = "employeedata";

// 创建 datatable 并添加列
datatable table = new datatable();
table.columns.add("employeeid");
table.columns.add("fullname");
table.columns.add("department");
table.columns.add("hiredate");
table.columns.add("salary");

// 添加示例数据
table.rows.add("e101", "john miller", "finance", "2020-02-15", "7500");
table.rows.add("e102", "sarah brown", "hr", "2019-07-10", "6800");
table.rows.add("e103", "michael davis", "it", "2021-01-22", "8200");
table.rows.add("e104", "laura wilson", "marketing", "2018-11-18", "7100");
table.rows.add("e105", "daniel lee", "sales", "2022-06-12", "6900");

// 将 datatable 插入工作表,从第一行第一列开始,并保留列名
sheet.insertdatatable(table, true, 1, 1);

// 应用内置样式
sheet.allocatedrange.rows[0].builtinstyle = builtinstyles.heading2; // 标题行
for (int i = 1; i < sheet.allocatedrange.rows.count(); i++)
{
    sheet.allocatedrange.rows[i].builtinstyle = builtinstyles.accent2; // 数据行
}

// 自动调整列宽和行高
sheet.allocatedrange.autofitcolumns();
sheet.allocatedrange.autofitrows();

说明

  • insertdatatable 可以直接将 datatable 内容写入工作表,同时支持保留列名。
  • 内置样式(builtinstyles)可以快速美化表格,例如标题行加粗、数据行配色。
  • autofitcolumns 和 autofitrows 可自动调整列宽和行高,使表格美观。

3. 保存为不同格式

spire.xls 支持多种保存格式,常见的包括:

  • xls/xlsx:传统 excel 文件
  • csv:逗号分隔文本文件
  • pdf:用于打印或发布
  • html / svg:网页或矢量图格式
  • xlsb/xlsm:二进制或带宏 excel 文件
  • memorystream:将文件写入内存流,用于网络传输或其他二次处理

示例代码:

// 保存为 excel 2016 格式
workbook.savetofile("employeedata.xlsx", fileformat.version2016);

// 保存为 csv
workbook.savetofile("employeedata.csv", fileformat.csv);

// 保存为 pdf
workbook.savetofile("employeedata.pdf", fileformat.pdf);

// 保存到 memorystream
using (memorystream ms = new memorystream())
{
    workbook.savetostream(ms, fileformat.version2016);
    // 这里可以将 ms 写入数据库、发送 http 响应等
}

说明

  • fileformat 枚举支持多达 25 种格式,例如 xlsb2007odshtmlmarkdown 等。
  • memorystream 保存方式适合 web 应用场景,可以直接将文件返回给客户端而不写入磁盘。

4. 效果展示

生成的 excel 文件:

表头加粗,数据行有配色,并且列宽自适应。

5. 扩展说明

  • 为什么要使用代码导出?对于批量生成报表或动态数据,手动操作效率低且易出错,使用代码生成可以自动化、可复用。
  • memorystream 场景

    • web api 返回文件下载
    • 将 excel 存入数据库或云存储
    • 在内存中生成并进一步处理,例如加密或压缩
  • 多格式支持spire.xls 的 fileformat 枚举几乎覆盖了主流的 excel、pdf、网页、模板等格式,可以满足多种业务需求。

6. 总结

本文演示了如何使用 spire.xls for .net

  • 在 c# 中创建 excel 文件并填充数据
  • 应用内置样式和自动调整行列
  • 将文件保存为多种格式(xlsx、csv、pdf、html 等)
  • 使用 memorystream 保存用于网络传输或二次处理

通过掌握 workbookworksheetinsertdatatable 和 savetofile/savetostream,你可以轻松实现 excel 数据导出和格式转换,提升企业应用开发效率。

以上就是使用c#导出excel数据并保存多种格式的完整示例的详细内容,更多关于c#导出excel数据并保存格式的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com