Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Aspose.Cells は、単一の Excel ファイルを複数のファイルに分割することをサポートします。これを行うには主に 2 つの方法があります。(1) ソースワークブックの各ワークシートを新しいワークブックにコピーして、それぞれを個別のファイルとして保存する方法、(2) ワークシートから特定のセル範囲を新しいワークブックにコピーする方法です。どちらのアプローチも、データのサブセットを配布したり、受信者ごとに小さいレポートを作成したり、個別の処理のためにデータを分離したりする必要がある場合に役立ちます。
開発者が単一の Excel ファイルを複数の小さなファイルに分割する必要がある現実的なシナリオは多数あります。たとえば、ワークブックには部門ごとに 1 つのワークシートが含まれており、各部門長は自分のシートのみを受け取る必要がある場合があります。他の場合では、ワークシートから特定のテーブルまたはデータブロックを抽出して、ワークブックの残りの部分を公開せずに、電子メールでスタンドアロンファイルとして送信したい場合があります。また、大規模な統合ワークブックは、取り扱いを容易にしたり、読み込みを高速化したり、他のシステムによる後続処理のために、小さなピースに分割する必要がある場合もあります。
Aspose.Cells は、このタスクに対して 2 つの柔軟なアプローチを提供します。最初のアプローチは、ソースワークブック内のすべてのワークシートを反復処理し、その内容をまったく新しい Workbook インスタンスにコピーして、それぞれを個別のファイルとして保存します。2 番目のアプローチは、ワークシート内の特定のセル範囲に焦点を当て、その範囲のみを新しいワークブックにコピーします。どちらの場合も、一般的な流れは同じです。Workbook クラスを使用してソースワークブックを読み込み、Worksheet および Cells オブジェクトを介して関連データにアクセスし、内容を宛先の Workbook に転送してから、宛先をディスクに保存します。
このアプローチでは、ソースワークブックを 1 回開き、その worksheets コレクション内のすべての Worksheet について、新しい宛先 Workbook を作成します。次に、ソースワークシートの内容を宛先ワークブックの最初のワークシートにコピーし、ソースワークシートの名前に由来するファイル名で宛先ワークブックを保存します。結果として、ワークシートごとに 1 つの出力ファイルが生成され、各出力ファイルには単一のソースシートのデータが含まれます。
この方法は、ソースワークブック内の各ワークシートが論理的に独立した情報の単位 (部門、地域、月、製品ラインなど) を表しており、各単位を独自に配信または処理したい場合に最適な選択肢です。
次の手順では、各ワークシートを新しいワークブックにコピーして Excel ファイルを分割する方法について説明します。
Workbook オブジェクトをインスタンス化し、ファイルパスをコンストラクタに渡して、ソース Excel ファイルを開きます。for ループを使用して Workbook.worksheets コレクションを反復処理し、ソースファイル内のすべての Worksheet が処理されるようにします。Workbook インスタンス (空のワークブック) を作成します。Worksheet を追加し (またはデフォルトの最初のワークシートを使用し)、意味のある名前を割り当てます。理想的には、ソースワークシートの name プロパティと同じ名前にします。Cells コレクション内のセルを反復処理し、その値を宛先ワークシートの対応するセルに書き込むことによって実行できます。または、Cells.copy メソッドを使用して範囲全体を一度に転送することもできます。dataDir + worksheet.name + ".xls") を含めた出力ファイルパスを構築して、生成された各ファイルが一意の名前を持つようにします。Workbook.save メソッドを呼び出して、ファイルをディスクに書き込みます。import aspose.cells as ac
import os
data_dir = "data/"
workbook = ac.Workbook(data_dir + "book1.xls")
for i in range(workbook.worksheets.count):
source_sheet = workbook.worksheets[i]
sheet_name = source_sheet.name
<span class="n">dest_workbook</span> <span class="o">=</span> <span class="n">ac</span><span class="o">.</span><span class="n">Workbook</span><span class="p">()</span>
<span class="n">dest_index</span> <span class="o">=</span> <span class="n">dest_workbook</span><span class="o">.</span><span class="n">worksheets</span><span class="o">.</span><span class="n">add</span><span class="p">()</span>
<span class="n">dest_sheet</span> <span class="o">=</span> <span class="n">dest_workbook</span><span class="o">.</span><span class="n">worksheets</span><span class="p">[</span><span class="n">dest_index</span><span class="p">]</span>
<span class="n">dest_sheet</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">sheet_name</span>
<span class="n">dest_sheet</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">source_sheet</span><span class="p">)</span>
<span class="n">dest_file</span> <span class="o">=</span> <span class="n">data_dir</span> <span class="o">+</span> <span class="n">sheet_name</span> <span class="o">+</span> <span class="s2">".xls"</span>
<span class="n">dest_workbook</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">dest_file</span><span class="p">,</span> <span class="n">ac</span><span class="o">.</span><span class="n">SaveFormat</span><span class="o">.</span><span class="n">EXCEL97_TO_2003</span><span class="p">)</span>
期待される出力は、データディレクトリ内の新しいファイルのセット (ソースワークブックのワークシートごとに 1 つのファイル) です。各ファイルは対応するソースシートにちなんで名前が付けられ、そのファイルにはその単一シートのデータ (およびオプションで書式設定) が含まれます。
分割する必要のあるデータがワークシート全体ではなく、ワークシートの特定の矩形領域 (たとえば A1:D10、または特定のテーブルを表す名前付き範囲) に対応する場合もあります。このような場合、ワークシート全体をコピーするのは無駄であるため、より正確なアプローチが必要です。ソース範囲を特定し、その範囲のみを新しいワークブックにコピーして、新しいファイルを保存します。
このアプローチは、より大きなワークシートから単一のテーブル、レポートブロック、またはデータ領域を抽出して、関連しないすべてのコンテンツを破棄する場合に最適です。シートのユーザーが選択した領域をスタンドアロンファイルとしてエクスポートする場合にも便利です。
次の手順では、特定の範囲を新しいワークブックにコピーして Excel ファイルを分割する方法について説明します。
Workbook オブジェクトをインスタンス化し、ソース Excel ファイルを開きます。Worksheet を、インデックス (たとえば、最初のシート) または worksheets コレクションから名前で取得します。A1:C10 のようなハードコードされたセル範囲、Worksheet.cells コレクションを介して取得された名前付き範囲、または Worksheet.cells.create_range を介して作成された範囲のいずれかです。Workbook インスタンスを作成します。Worksheet (デフォルトのシート) にアクセスします。A1 から開始します。宛先の Cells コレクションの Cells.copy メソッドを使用して範囲全体をコピーできます。または、ソース範囲のセルを反復処理し、その値を put_value で宛先セルに書き込むこともできます。オプションの CopyOptions を指定して、転送する内容 (値のみ、値とスタイル、数式など) を制御できます。Workbook.save メソッドを使用して、宛先ワークブックをディスク上の新しいファイルパスに保存します。期待される出力は、ソースワークブックから抽出された指定された範囲の値 (およびオプションで書式設定) のみを含む、データディレクトリ内の単一の新しいファイルです。宛先ファイルは、ソースファイル内の他のデータとは関係がなく、最初のワークシートのセル A1 から始まる、抽出された範囲のみを含みます。
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.