在日常办公中,经常需要在 Excel 电子表格和 Markdown 文件之间进行数据交换。Markdown 是一种轻量级标记语言,广泛用于文档撰写、博客和技术说明。Spire.XLS for JavaScript 基于 WebAssembly 在浏览器端直接完成 Excel 与 Markdown 格式的双向转换,通过虚拟文件系统(VFS)管理输入输出文件,无需后端服务支持。它提供了简单易用的 API,让格式转换更加便捷。
通过 Spire.XLS for JavaScript,您可以将 Excel 工作表中的数据导出为结构清晰、易于阅读的 Markdown 表格,也可以将包含表格语法的 Markdown 文件导入并创建为格式完整的 Excel 工作簿。这使得数据在不同应用程序之间的迁移变得更加便捷高效。
本文介绍两个核心功能点:
有关安装和项目配置,请参考 React 项目中集成 Spire.XLS for JavaScript。以下示例默认已安装 Spire.XLS 并完成 WebAssembly 模块初始化。
将 Excel 工作簿转换为 Markdown 文件
将 Excel 数据导出为 Markdown 表格,便于在文档、博客或版本控制系统中直接阅读和分享表格数据。通过 Spire.XLS for JavaScript,您可以将整个工作簿保存为 Markdown 文件,生成的表格结构清晰、易于维护。具体操作步骤如下:
- 创建
Workbook对象并加载已有的 Excel 文件。 - 调用工作簿的
SaveToFile()方法,指定输出文件名和FileFormat.Markdown文件格式。 - 释放工作簿资源并从 VFS 读取结果文件触发下载。
下面是一个完整的代码示例,展示了在 React 中将 Excel 转换为 Markdown:
function App() {
const convertToMarkdown = async () => {
// 获取 Spire.XLS WASM 模块
const xlsModule = window.wasmModule?.spirexls;
// 检查模块是否就绪
if (!xlsModule) {
alert('Spire.Xls is not ready yet');
return;
}
// 将示例 Excel 文件加载到 VFS
await window.spire.FetchFileToVFS('Sample.xlsx', '', `${process.env.PUBLIC_URL}data/`);
// 加载字体文件以确保文本正确渲染
await window.spire.FetchFileToVFS('ARIAL.TTF', '/Library/Fonts/', `${process.env.PUBLIC_URL}font/`);
// 创建工作簿对象并加载 Excel 文件
const workbook = new xlsModule.Workbook();
workbook.LoadFromFile({ fileName: 'Sample.xlsx' });
// 将工作簿保存为 Markdown 文件
const outputFileName = 'ExcelToMarkdown.md';
workbook.SaveToFile({ fileName: outputFileName, fileFormat: xlsModule.FileFormat.Markdown });
workbook.Dispose();
// 从 VFS 读取文件并触发下载
const fileArray = window.dotnetRuntime.Module.FS.readFile(outputFileName);
const blob = new Blob([fileArray], { type: 'text/markdown' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = outputFileName;
a.click();
URL.revokeObjectURL(url);
};
return (
<div style={{ textAlign: 'center', height: '300px' }}>
<h1>将 Excel 转换为 Markdown</h1>
<button onClick={convertToMarkdown}>
生成
</button>
</div>
);
}
export default App;
使用 Spire.XLS for JavaScript 将 Excel 转换为 Markdown 文件

将 Markdown 文件转换为 Excel 工作簿
将 Markdown 文件导入为 Excel 电子表格,可以充分利用 Excel 的格式化、计算和图表功能。Spire.XLS for JavaScript 支持通过 LoadFromMarkdown() 方法直接加载 Markdown 文件,并将其中的表格数据转换为工作表中的单元格。具体操作步骤如下:
- 将字体文件和 Markdown 示例文件加载到 VFS 虚拟文件系统。
- 创建
Workbook对象,调用LoadFromMarkdown()方法加载 Markdown 文件。 - 保存工作簿为 Excel 文件并触发下载。
下面是一个完整的代码示例,展示了在 React 中将 Markdown 转换为 Excel:
function App() {
const convertToExcel = async () => {
// 获取 Spire.XLS WASM 模块
const xlsModule = window.wasmModule?.spirexls;
// 检查模块是否就绪
if (!xlsModule) {
alert('Spire.Xls is not ready yet');
return;
}
// 加载字体文件以确保文本正确渲染
await window.spire.FetchFileToVFS('ARIAL.TTF', '/Library/Fonts/', `${process.env.PUBLIC_URL}font/`);
// 将 Markdown 示例文件加载到 VFS
await window.spire.FetchFileToVFS('Sample.md', '', `${process.env.PUBLIC_URL}data/`);
// 创建工作簿对象并加载 Markdown 文件
const workbook = new xlsModule.Workbook();
workbook.LoadFromMarkdown('Sample.md');
// 保存工作簿并释放资源
const outputFileName = 'MarkdownToExcel.xlsx';
workbook.SaveToFile({ fileName: outputFileName, version: xlsModule.ExcelVersion.Version2010 });
workbook.Dispose();
// 从 VFS 读取文件并触发下载
const fileArray = window.dotnetRuntime.Module.FS.readFile(outputFileName);
const blob = new Blob([fileArray], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = outputFileName;
a.click();
URL.revokeObjectURL(url);
};
return (
<div style={{ textAlign: 'center', height: '300px' }}>
<h1>将 Markdown 转换为 Excel</h1>
<button onClick={convertToExcel}>
生成
</button>
</div>
);
}
export default App;
使用 Spire.XLS for JavaScript 将 Markdown 转换为 Excel 文件

常见问题
如何处理转换时的字体缺失问题?
原因:WASM 虚拟文件系统(VFS)中若未加载字体文件,导出的 Markdown 内容或导入的单元格文本可能无法正确渲染,尤其是在包含中文等非 ASCII 字符时。
解决方案:转换前通过 FetchFileToVFS 将字体文件加载到 VFS:
await window.spire.FetchFileToVFS(
'ARIAL.TTF', '/Library/Fonts/', `${process.env.PUBLIC_URL}font/`
);
下载的 Markdown 文件被当作其他类型打开或显示乱码?
原因:创建 Blob 时 MIME 类型设置不当,导致浏览器无法识别下载文件为 Markdown 文本,可能以其他类型打开或显示乱码。
解决方案:下载时指定正确的 MIME 类型,并确保下载文件名以 .md 结尾:
const blob = new Blob([fileArray], { type: 'text/markdown' });
const a = document.createElement('a');
a.href = URL.createObjectURL(blob);
a.download = 'ExcelToMarkdown.md';
a.click();
获取免费许可证
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。









