Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Aspose.Cells unterstützt das Aufteilen einer einzelnen Excel-Datei in mehrere Dateien. Es gibt zwei Hauptmethoden: (1) durch Kopieren jedes Arbeitsblatts der Quellarbeitsmappe in eine neue Arbeitsmappe und Speichern jeder als separate Datei, und (2) durch Kopieren eines bestimmten Zellbereichs aus einem Arbeitsblatt in eine neue Arbeitsmappe. Beide Ansätze sind nützlich, wenn Sie Teilmengen von Daten verteilen, kleinere Berichte für verschiedene Empfänger erstellen oder Daten für die individuelle Verarbeitung isolieren müssen.
Es gibt viele reale Szenarien, in denen ein Entwickler eine einzelne Excel-Datei in mehrere kleinere Dateien aufteilen muss. Beispielsweise kann eine Arbeitsmappe ein Arbeitsblatt pro Abteilung enthalten, und jeder Abteilungsleiter muss nur sein eigenes Blatt erhalten. In anderen Fällen möchten Sie möglicherweise eine bestimmte Tabelle oder einen Datenblock aus einem Arbeitsblatt extrahieren und als eigenständige Datei per E-Mail versenden, ohne den Rest der Arbeitsmappe offenzulegen. Große konsolidierte Arbeitsmappen müssen möglicherweise auch in kleinere Teile aufgeteilt werden, um eine einfachere Handhabung, schnelleres Laden oder nachgelagerte Verarbeitung durch andere Systeme zu ermöglichen.
Aspose.Cells bietet zwei flexible Ansätze für diese Aufgabe. Der erste Ansatz durchläuft jedes Arbeitsblatt in der Quellarbeitsmappe und kopiert dessen Inhalt in eine brandneue Workbook-Instanz, die jeweils als separate Datei gespeichert wird. Der zweite Ansatz konzentriert sich auf einen bestimmten Zellbereich innerhalb eines Arbeitsblatts und kopiert nur diesen Bereich in eine neue Arbeitsmappe. In beiden Fällen ist der allgemeine Ablauf derselbe: Laden Sie die Quellarbeitsmappe mit der Klasse Workbook, greifen Sie über die Objekte Worksheet und Cells auf die relevanten Daten zu, übertragen Sie den Inhalt in eine Ziel-Workbook und speichern Sie diese dann auf der Festplatte.
Bei diesem Ansatz wird die Quellarbeitsmappe einmal geöffnet, und dann wird für jedes Worksheet in der Worksheets-Sammlung eine neue Ziel-Workbook erstellt. Der Inhalt des Quellarbeitsblatts wird dann in das erste Arbeitsblatt der Zielarbeitsmappe kopiert, und die Zielarbeitsmappe wird als Datei gespeichert, deren Name vom Namen des Quellarbeitsblatts abgeleitet ist. Das Ergebnis ist eine Ausgabedatei pro Arbeitsblatt, wobei jede Ausgabedatei die Daten eines einzelnen Quellblatts enthält.
Diese Methode ist die richtige Wahl, wenn jedes Arbeitsblatt in Ihrer Quellarbeitsmappe eine logisch unabhängige Informationseinheit darstellt (z. B. eine Abteilung, Region, einen Monat oder eine Produktlinie) und Sie jede Einheit einzeln bereitstellen oder verarbeiten möchten.
Die folgenden Schritte beschreiben, wie eine Excel-Datei durch Kopieren jedes Arbeitsblatts in eine neue Arbeitsmappe aufgeteilt wird:
Workbook-Objekt instanziieren und den Dateipfad an seinen Konstruktor übergeben.Workbook.Worksheets mit einer for- oder foreach-Schleife, damit jedes Worksheet in der Quelldatei verarbeitet wird.Workbook-Instanz (eine leere Arbeitsmappe) für das aktuelle Arbeitsblatt.Cells-Sammlung des Quellarbeitsblatts durchlaufen und deren Werte in die entsprechenden Zellen des Zielarbeitsblatts geschrieben werden, oder indem die Methode Cells.copy verwendet wird, um einen gesamten Bereich auf einmal zu übertragen.dataDir + worksheet.getName() + ".xls"), damit jede generierte Datei einen eindeutigen Namen hat.Workbook.save der Zielarbeitsmappe auf, um die Datei auf der Festplatte zu speichern.import com.aspose.cells.*;
String dataDir = "data/";
Workbook workbook = new Workbook(dataDir + "book1.xls");
for (int i = 0; i < workbook.getWorksheets().getCount(); i++)
{
Worksheet sourceSheet = workbook.getWorksheets().get(i);
String sheetName = sourceSheet.getName();
<span class="n">Workbook</span> <span class="n">destWorkbook</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Workbook</span><span class="o">();</span>
<span class="kt">int</span> <span class="n">destIndex</span> <span class="o">=</span> <span class="n">destWorkbook</span><span class="o">.</span><span class="na">getWorksheets</span><span class="o">().</span><span class="na">add</span><span class="o">();</span>
<span class="n">Worksheet</span> <span class="n">destSheet</span> <span class="o">=</span> <span class="n">destWorkbook</span><span class="o">.</span><span class="na">getWorksheets</span><span class="o">().</span><span class="na">get</span><span class="o">(</span><span class="n">destIndex</span><span class="o">);</span>
<span class="n">destSheet</span><span class="o">.</span><span class="na">setName</span><span class="o">(</span><span class="n">sheetName</span><span class="o">);</span>
<span class="n">destSheet</span><span class="o">.</span><span class="na">copy</span><span class="o">(</span><span class="n">sourceSheet</span><span class="o">);</span>
<span class="n">String</span> <span class="n">destFile</span> <span class="o">=</span> <span class="n">dataDir</span> <span class="o">+</span> <span class="n">sheetName</span> <span class="o">+</span> <span class="s">".xls"</span><span class="o">;</span>
<span class="n">destWorkbook</span><span class="o">.</span><span class="na">save</span><span class="o">(</span><span class="n">destFile</span><span class="o">,</span> <span class="n">SaveFormat</span><span class="o">.</span><span class="na">EXCEL_97_TO_2003</span><span class="o">);</span>
}
Die erwartete Ausgabe ist ein Satz neuer Dateien im Datenverzeichnis, eine Datei pro Arbeitsblatt aus der Quellarbeitsmappe. Jede Datei wird nach ihrem entsprechenden Quellblatt benannt und enthält die Daten (und optional die Formatierung) dieses einzelnen Blatts.
Manchmal entsprechen die Daten, die Sie aufteilen müssen, nicht einem gesamten Arbeitsblatt, sondern einer bestimmten rechteckigen Region eines Arbeitsblatts, wie z. B. A1:D10 oder einem benannten Bereich, der eine bestimmte Tabelle darstellt. In diesen Fällen ist das Kopieren ganzer Arbeitsblätter verschwenderisch, und ein präziserer Ansatz ist erforderlich: Identifizieren Sie den Quellbereich, kopieren Sie nur diesen Bereich in eine neue Arbeitsmappe und speichern Sie die neue Datei.
Dieser Ansatz ist ideal, wenn Sie eine einzelne Tabelle, einen Berichtsblock oder einen Datenbereich aus einem größeren Arbeitsblatt extrahieren möchten, während Sie alle nicht zugehörigen Inhalte verwerfen. Er ist auch nützlich, um vom Benutzer ausgewählte Bereiche eines Blattes als eigenständige Dateien zu exportieren.
Die folgenden Schritte beschreiben, wie eine Excel-Datei durch Kopieren eines bestimmten Bereichs in eine neue Arbeitsmappe aufgeteilt wird:
Workbook-Objekt mit dem Dateipfad instanziieren.Worksheet ab, das den zu kopierenden Bereich enthält, entweder nach Index (zum Beispiel das erste Blatt) oder nach Name aus der Worksheets-Sammlung.A1:C10 sein, oder ein benannter Bereich, der über die Sammlung Worksheet.Cells abgerufen wird, oder ein Bereich, der über Worksheet.Cells.createRange erstellt wird.Workbook-Instanz.Worksheet der Zielarbeitsmappe zu (das Standardblatt).A1. Die Methode Cells.copy auf der Ziel-Cells-Sammlung kann verwendet werden, um einen gesamten Bereich zu kopieren, oder Sie können die Zellen des Quellbereichs durchlaufen und ihre Werte mit putValue in die Zielzellen schreiben. Optional können CopyOptions angegeben werden, um zu steuern, was übertragen wird (nur Werte, Werte und Stile, Formeln usw.).Workbook.save.Die erwartete Ausgabe ist eine einzelne neue Datei im Datenverzeichnis, die nur die Werte (und optional die Formatierung) des angegebenen Bereichs enthält, der aus der Quellarbeitsmappe extrahiert wurde. Die Zieldatei hat keine Beziehung zu anderen Daten in der Quelldatei; sie enthält nur den extrahierten Bereich, beginnend bei Zelle A1 des ersten Arbeitsblatts.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.