在开发中,我们经常需要在不同格式之间转换数据。excel 是数据分析与管理的利器,但其专有格式(如 xls、xlsx)在跨平台共享时常常面临兼容性问题。而 markdown 作为一种轻量级标记语言,因其简洁、易读的特性,被广泛用于技术文档、readme 文件和博客写作。如果能将 excel 中的数据转换为 markdown 表格嵌入文档,或者将 markdown 中的表格数据提取到 excel 中进行分析,无疑会大大提升工作效率。
本文将介绍如何使用 spire.xls for .net 这一强大的 excel 操作库,在 c# 中轻松实现 excel 与 markdown 的双向转换。

关于 spire.xls for .net
spire.xls for .net 是一款专业的 excel .net api,支持开发人员在 c#、vb.net、asp.net、.net core 等各类 .net 应用中创建、读取、写入、转换和打印 excel 文件。最方便的是,它 完全独立 ,无需安装 microsoft excel 或 office。
环境准备
使用 nuget 安装 spire.xls 是最便捷的方式:
install-package spire.xls
一、excel 转 markdown
将 excel 文件转换为 markdown 格式,核心代码非常简洁——仅需四步:创建 workbook 对象、加载 excel 文件、调用 savetomarkdown() 方法保存、释放资源。
using spire.xls;
namespace convertexceltomarkdown
{
internal class program
{
static void main(string[] args)
{
workbook workbook = new workbook();
// 支持加载 .xls 或 .xlsx 格式
workbook.loadfromfile("input.xlsx");
// 保存为 markdown 文件
workbook.savetomarkdown("output.md");
workbook.dispose();
}
}
}
savetomarkdown() 方法会将工作簿中的每个非空工作表转换为独立的 markdown 表格,并在表格前添加工作表名称作为标题。整个过程仅需几行代码,即可将结构化数据嵌入到技术文档或博客中。
二、markdown 转 excel
反向转换同样简单。spire.xls 提供了 loadfrommarkdown() 方法,可以直接加载 markdown 文件并将其解析为 excel 工作簿结构。
using spire.xls;
namespace markdowntoexcel
{
internal class program
{
static void main(string[] args)
{
workbook workbook = new workbook();
// 加载 markdown 文件
workbook.loadfrommarkdown("input.md");
// 可选:将工作表内容适配到一页
workbook.convertersetting.sheetfittopage = true;
// 导出为 excel 2016 格式
workbook.savetofile("output.xlsx", excelversion.version2016);
workbook.dispose();
}
}
}
loadfrommarkdown() 方法会解析 markdown 内容(包括文本和表格),将其转换为 excel 工作簿结构。随后通过 savetofile() 方法即可导出为标准的 excel 文件。这对于需要将 markdown 中的表格数据提取出来进行进一步分析或处理的场景非常实用。
三、进阶配置
excel 转 markdown 时支持自定义导出选项。例如,可以设置图片是否使用相对路径保存、超链接是否格式化为 markdown 引用样式等:
markdownoptions options = new markdownoptions();
options.savepicinrelativepath = true;
options.savehyperlinkasref = true;
workbook.savetomarkdown("output.md", options);
知识扩展
在 c# 中实现 excel 与 markdown 的互转,主要依靠专业的 office 文档处理库。以下是几种主流的实现方式,涵盖商业库和开源方案。
方案总览
| 方案 | 类型 | excel → markdown | markdown → excel | 特点 |
|---|---|---|---|---|
| syncfusion xlsio | 商业(有社区免费版) | ✅ | ✅ | 双向转换,支持图片自定义 |
| aspose.cells | 商业 | ✅ | ✅ | 代码极简,转换质量高 |
| groupdocs.conversion | 商业 | ✅ | ✅ | 通用文档转换,支持多种格式 |
| spire.xls | 商业(有免费版) | ✅ | ✅ | 国产库,中文支持好 |
| rag.parsers | 开源免费 | ✅ | ❌ | 轻量级,纯 open xml 实现 |
| elbruno.markitdotnet | 开源免费 | ✅ | ❌ | 支持 15+ 格式转 markdown |
excel → markdown(导出为 markdown)
syncfusion xlsio
using syncfusion.xlsio;
using (excelengine excelengine = new excelengine())
{
iapplication application = excelengine.excel;
application.defaultversion = excelversion.xlsx;
iworkbook workbook = application.workbooks.open(@"input.xlsx");
// 直接保存为 markdown 格式
workbook.saveas("output.md");
}如需自定义图片保存路径,可通过 markdownexportoptions 配置:
markdownexportoptions exportoptions = new markdownexportoptions();
exportoptions.saveoptions.imagenodevisited += (sender, args) =>
{
// 自定义图片路径处理逻辑
};
workbook.saveas("output.md", exportoptions);安装:install-package syncfusion.xlsio.net.core
aspose.cells
using aspose.cells;
workbook workbook = new workbook("input.xlsx");
workbook.save("output.md");仅需两行代码即可完成转换。
安装:install-package aspose.cells
groupdocs.conversion
using groupdocs.conversion;
using groupdocs.conversion.options.convert;
using (converter converter = new converter("input.xlsx"))
{
var options = new markdownconvertoptions();
converter.convert("output.md", options);
}安装:install-package groupdocs.conversion
spire.xls
using spire.xls;
workbook workbook = new workbook();
workbook.loadfromfile("input.xlsx");
workbook.savetofile("output.md", fileformat.markdown);安装:install-package spire.xls(免费版有 10 页限制)
rag.parsers(开源免费)
using rag.parsers.xlsx;
var parser = new xlsxparser();
string markdown = parser.exceltomarkdown("input.xlsx");
// markdown 包含所有工作表的表格数据安装:install-package rag.parsers.xlsx
elbruno.markitdotnet(开源免费)
using elbruno.markitdotnet;
var converter = new markitdown();
string markdown = await converter.convertasync("input.xlsx");该库将 excel 表格转换为 markdown 表格格式。
安装:
install-package elbruno.markitdotnet install-package elbruno.markitdotnet.excel
markdown → excel(导入为 excel)
syncfusion xlsio
using syncfusion.xlsio;
using (excelengine excelengine = new excelengine())
{
iapplication application = excelengine.excel;
application.defaultversion = excelversion.xlsx;
// 以 markdown 格式打开文件
iworkbook workbook = application.workbooks.open(
@"input.md",
excelopentype.markdown
);
workbook.saveas("output.xlsx");
}支持 commonmark 规范和 github 风格的 markdown 语法。
aspose.cells
using aspose.cells;
workbook workbook = new workbook("input.md");
workbook.save("output.xlsx");与 excel → markdown 一样简洁。
groupdocs.conversion
using groupdocs.conversion;
using groupdocs.conversion.options.convert;
using (converter converter = new converter("input.md"))
{
var options = new spreadsheetconvertoptions();
converter.convert("output.xlsx", options);
}spire.xls
using spire.xls;
workbook workbook = new workbook();
workbook.loadfromfile("input.md");
workbook.savetofile("output.xlsx", fileformat.version2016);总结
通过 spire.xls for .net,c# 开发者可以用极少的代码实现 excel 与 markdown 的双向转换。无论是将 excel 数据快速发布为技术文档,还是从 markdown 中提取表格数据到 excel 进行分析,这个库都提供了简洁、高效的解决方案。加上它无需安装 office、支持多种 .net 框架的特性,非常适合集成到各类 .net 应用程序中。
如果你正在寻找一种轻量级的方式打通 excel 与 markdown 之间的数据通道,不妨试试 spire.xls for .net。
到此这篇关于c#代码轻松实现excel和markdown互转的文章就介绍到这了,更多相关c# excel和markdown互转内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论