マルチタブスプレッドシートの操作
はじめに
Excel の各タブを個別のファイルとして save each Excel tab する必要がある場合、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 シート以上のブックを処理できます。
“save each excel tab” とは何ですか?
“Save each Excel tab” は、マルチシートブックからすべてのワークシートを抽出し、各シートを個別のスタンドアロン文書(例:別々の XLSX または PDF ファイル)として書き出すことを意味します。この方法により、シートごとにファイルが得られるため、下流の処理、レポート作成、配布が簡素化され、共有、アーカイブ、または独立した変換が可能になります。
このタスクに GroupDocs.Editor を使用する理由
GroupDocs.Editor は 30 以上の入力および出力形式 をサポートし、最大 1,000 シート のスプレッドシートを、ファイル全体をロードせずにデータをストリーミングすることでメモリ使用量を抑えて処理できます。API はセルのスタイル、数式、埋め込み画像も保持し、エクスポートされた各タブが元のシートと同一に見えることを保証します。
前提条件
- Visual Studio – 任意の最新エディション(Community、Professional、Enterprise)。
- .NET Framework 4.0+ – またはクロスプラットフォームランタイムを希望する場合は .NET Core/5/6。
- GroupDocs.Editor for .NET – download page からダウンロードしてください。
- License – テスト用には temporary license で問題ありません。本番利用にはフルライセンスを購入してください。
- Free trial – ライブラリは free trial ページからも試せます。
- Support – 問題が発生した場合は support forum を訪れるか、フルライセンスのために purchase page を検討してください。
名前空間のインポート
コードを書く前に、必要な名前空間をインポートする必要があります。以下の 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 インスタンスと 0 ベースのシートインデックスを受け取ります。
SpreadsheetEditOptions editOptions1 = new SpreadsheetEditOptions();
editOptions1.WorksheetIndex = 0; // First tab
EditableDocument firstTabBeforeEdit = editor.Edit(editOptions1);
手順 4: 2 番目のタブから 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: 2 番目のタブを別々のドキュメントに保存
同じ Save 呼び出しが 2 番目のシートでも機能し、必要に応じて 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();
よくある問題と解決策
- “File is locked” errors – すべての
EditableDocumentとEditorインスタンスでDispose()を呼び出すか、using文でラップしてください。 - Missing styles after export – スタイルをサポートする形式(例: XLSX や PDF)で保存しているか確認してください。CSV は設計上フォーマットが失われます。
- Large workbooks cause slow performance – メモリ使用量を抑えるためにストリーミングロードオプション(
LoadOptions.Streaming = true)を使用してください。
よくある質問
Q: ワークブックに非表示シートが含まれている場合はどうなりますか?
A: 非表示シートは他のシートと同様に扱われます。インデックスでアクセスして保存できますが、出力で表示させたい場合は保存前に EditableDocument.IsVisible = true を設定する必要があります。
Q: Excel タブを直接 PDF に変換できますか?
A: はい、EditableDocument の Save 呼び出し時に SaveFormat.Pdf を指定します。ライブラリは変換中にレイアウト、画像、チャートを保持します。
Q: ワークブックを XLSX ではなく CSV ファイルに分割できますか?
A: もちろんです。各 EditableDocument に対して SaveFormat.Csv を使用すれば、各シートのプレーンテキスト CSV 表現が生成されます。
Q: GroupDocs.Editor はパスワード保護された Excel ファイルをサポートしていますか?
A: サポートしています。Editor インスタンス作成時に LoadOptions.Password でパスワードを指定してください。
Q: スプレッドシートの操作例はどこで見つけられますか?
A: 公式ドキュメントとサンプルプロジェクトは download page にあり、追加のユースケースが掲載されています。
結論
これらの手順に従うことで、save each Excel tab を独立したドキュメントとして保存したり、タブを PDF に変換したり、大規模なブックを扱いやすい単位に分割したりできます。すべて信頼性の高い高性能な GroupDocs.Editor for .NET ライブラリで実現します。この機能により、レポートパイプラインが効率化され、データ抽出が自動化され、手作業のスプレッドシート処理が削減されます。
最終更新日: 2026-06-06
テスト環境: GroupDocs.Editor 23.11 for .NET
作者: GroupDocs