一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

C#代码简单实现Excel和Markdown互转

时间:2026-07-21 17:11:58 编辑:袖梨 来源:一聚教程网

在开发中,我们经常需要在不同格式之间转换数据。Excel 是数据分析与管理的利器,但其专有格式(如 XLS、XLSX)在跨平台共享时常常面临兼容性问题。而 Markdown 作为一种轻量级标记语言,因其简洁、易读的特性,被广泛用于技术文档、README 文件和博客写作。如果能将 Excel 中的数据转换为 Markdown 表格嵌入文档,或者将 Markdown 中的表格数据提取到 Excel 中进行分析,无疑会大大提升工作效率。

本文将介绍如何使用 Spire.XLS for .NET 这一强大的 Excel 操作库,在 C# 中轻松实现 Excel 与 Markdown 的双向转换。

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 → MarkdownMarkdown → 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。

热门栏目