使用多标签电子表格

介绍

如果您需要 将每个 Excel 标签保存为独立文件,GroupDocs.Editor for .NET 可以轻松实现。无论是提取财务报告、生成部门工作表,还是将标签转换为 PDF,本教程将带您完成整个工作流——从环境设置到资源释放——让您能够自信地自动化多表处理。

快速答疑

  • GroupDocs.Editor 能将 XLSX 拆分为单独的文件吗? 是的,您可以加载工作簿并单独导出每个工作表。
  • 每个标签可以保存为何种格式? 支持 XLSX、CSV、PDF、HTML 等——超过 30 种输出格式。
  • 此功能需要许可证吗? 临时许可证可用于测试;生产环境需要正式许可证。
  • 支持 .NET Core 吗? 完全支持——该库兼容 .NET Framework 4.0+ 以及 .NET Core/5/6+。
  • 一次可以处理多少个标签? GroupDocs.Editor 能在不将整个文件加载到内存的情况下处理包含 500+ 工作表的工作簿。

什么是“保存每个 Excel 标签”?

“保存每个 Excel 标签” 指的是从多工作表工作簿中提取每个工作表,并将每个工作表写入其独立的文档(例如单独的 XLSX 或 PDF 文件)。这种方法通过为每个工作表提供一个文件,简化了后续处理、报告和分发,可单独共享、归档或进一步转换。

为什么在此任务中使用 GroupDocs.Editor?

GroupDocs.Editor 支持 30+ 输入和输出格式,并且能够处理 多达 1,000 张工作表 的电子表格,同时通过流式处理而不是一次性加载整个文件来保持低内存使用。API 还保留单元格样式、公式和嵌入的图像,确保每个导出的标签在外观上与原始文件完全一致。

先决条件

在开始之前,请确认您已具备:

  1. Visual Studio – 任意近期版本(Community、Professional 或 Enterprise)。
  2. .NET Framework 4.0+ – 或者如果您偏好跨平台运行时,可使用 .NET Core/5/6。
  3. GroupDocs.Editor for .NET – 从下载页面下载。
  4. License – 测试时使用临时许可证即可;生产使用需购买正式许可证。
  5. Free trial – 您也可以通过免费试用页面尝试该库。
  6. Support – 如遇问题,请访问支持论坛或考虑在购买页面获取正式许可证。

导入命名空间

在开始编码之前,您需要导入必要的命名空间。将以下 using 指令添加到 .cs 文件的顶部:

using System.IO;
using GroupDocs.Editor.Formats;
using GroupDocs.Editor.Options;

如何将每个 Excel 标签保存为单独的文件?

加载工作簿,为每个工作表创建 EditableDocument,并使用所需的格式调用 Save。此过程将每个标签隔离,允许您指定不同的输出路径,并自动释放资源。下面是您将遵循的逐步工作流,包含每个 API 调用的说明以及避免常见陷阱的最佳实践提示。

步骤 1:获取输入文件的路径

首先,指定包含多个标签的源 XLSX 文件的完整路径。

string inputFilePath = "Your Sample Document";

步骤 2:将电子表格加载到 Editor 实例中

Editor 类是 GroupDocs.Editor 中所有文档操作的入口。它读取文件流并准备文档以供编辑或提取。

using (FileStream inputStream = File.OpenRead(inputFilePath))
{
    using (Editor editor = new Editor(delegate { return inputStream; }, delegate { return new SpreadsheetLoadOptions(); }))
    {
        // Further steps will go here
    }
}

步骤 3:从第一个标签创建 EditableDocument

EditableDocument 表示工作簿中的单个可编辑工作表。构造函数接受 Editor 实例和基于零的工作表索引。

SpreadsheetEditOptions editOptions1 = new SpreadsheetEditOptions();
editOptions1.WorksheetIndex = 0; // First tab
EditableDocument firstTabBeforeEdit = editor.Edit(editOptions1);

步骤 4:从第二个标签创建 EditableDocument

通过更改索引值,您可以对任何其他工作表重复相同的模式。

SpreadsheetEditOptions editOptions2 = new SpreadsheetEditOptions();
editOptions2.WorksheetIndex = 1; // Second tab
EditableDocument secondTabBeforeEdit = editor.Edit(editOptions2);

步骤 5:将第一个标签保存为单独的文档

Save 将编辑后的文档以指定格式写入文件。对 EditableDocument 实例调用它,提供输出路径和格式(例如 SaveFormat.Xlsx)。

SpreadsheetSaveOptions saveOptions1 = new SpreadsheetSaveOptions(SpreadsheetFormats.Xlsm);
string outputFilename1 = Path.GetFileNameWithoutExtension(inputFilePath) + "_tab1.xlsm";
string outputPath1 = Path.Combine(Constants.GetOutputDirectoryPath(inputFilePath), outputFilename1);
editor.Save(firstTabBeforeEdit, outputPath1, saveOptions1);

步骤 6:将第二个标签保存为单独的文档

对第二个工作表同样使用 Save 调用,必要时您可以选择不同的格式,例如 PDF。

SpreadsheetSaveOptions saveOptions2 = new SpreadsheetSaveOptions(SpreadsheetFormats.Xlsb);
string outputFilename2 = Path.GetFileNameWithoutExtension(inputFilePath) + "_tab2.xlsb";
string outputPath2 = Path.Combine(Constants.GetOutputDirectoryPath(inputFilePath), outputFilename2);
editor.Save(secondTabBeforeEdit, outputPath2, saveOptions2);

步骤 7:释放 EditableDocument 实例

Dispose 释放文档持有的非托管资源,如文件句柄,确保在长时间运行的服务中不会泄漏。

firstTabBeforeEdit.Dispose();
secondTabBeforeEdit.Dispose();

常见问题及解决方案

  • “文件被锁定”错误 – 确保对每个 EditableDocumentEditor 实例调用 Dispose(),或将它们放在 using 语句块中。
  • 导出后样式缺失 – 确认您保存的格式支持样式(例如 XLSX 或 PDF)。CSV 按设计会丢失格式。
  • 大型工作簿导致性能慢 – 使用流式加载选项 (LoadOptions.Streaming = true) 以保持低内存使用。

常见问题

问:如果我的工作簿包含隐藏工作表怎么办?
答:隐藏工作表与其他工作表一样处理;您可以通过索引访问并保存它们,但如果希望在输出中可见,可能需要在保存前将 EditableDocument.IsVisible = true 设置为 true。

问:我能直接将 Excel 标签转换为 PDF 吗?
答:可以,在对 EditableDocument 调用 Save 时指定 SaveFormat.Pdf。库在转换过程中会保留布局、图像和图表。

问:是否可以将工作簿拆分为 CSV 文件而不是 XLSX?
答:完全可以。对每个 EditableDocument 使用 SaveFormat.Csv,即可生成每个工作表的纯文本 CSV 表示。

问:GroupDocs.Editor 是否支持受密码保护的 Excel 文件?
答:支持。在创建 Editor 实例时通过 LoadOptions.Password 提供密码。

问:在哪里可以找到更多关于处理电子表格的示例?
答:官方文档和位于下载页面的示例项目中包含更多用例。

结论

通过遵循这些步骤,您可以 将每个 Excel 标签保存为独立文档,将标签转换为 PDF,或将大型工作簿拆分为可管理的块——全部使用可靠的高性能 GroupDocs.Editor for .NET 库。此功能简化了报告流水线,自动化数据提取,并减少了手动处理电子表格的工作量。


最后更新: 2026-06-06
测试环境: GroupDocs.Editor 23.11 for .NET
作者: GroupDocs


相关教程