Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Aspose.Cells поддерживает разделение одного файла Excel на несколько файлов. Существует два основных способа сделать это: (1) путём копирования каждого рабочего листа исходной рабочей книги в новую рабочую книгу и сохранения каждой из них как отдельного файла, и (2) путём копирования определённого диапазона ячеек из рабочего листа в новую рабочую книгу. Оба подхода полезны, когда вам нужно распределить подмножества данных, создать небольшие отчёты для разных получателей или изолировать данные для индивидуальной обработки.
Существует множество реальных сценариев, в которых разработчику необходимо разбить один файл Excel на несколько более мелких файлов. Например, рабочая книга может содержать по одному рабочему листу на отдел, и каждому руководителю отдела нужно получить только свой собственный лист. В других случаях может потребоваться извлечь конкретную таблицу или блок данных из рабочего листа и отправить его как самостоятельный файл по электронной почте, не раскрывая остальную часть рабочей книги. Большие консолидированные рабочие книги также могут нуждаться в разделении на более мелкие части для упрощения обработки, ускорения загрузки или последующей обработки другими системами.
Aspose.Cells предоставляет два гибких подхода для этой задачи. Первый подход перебирает каждый рабочий лист в исходной рабочей книге и копирует его содержимое в совершенно новый экземпляр Workbook, сохраняя каждый как отдельный файл. Второй подход фокусируется на конкретном диапазоне ячеек внутри рабочего листа и копирует только этот диапазон в новую рабочую книгу. В обоих случаях общий ход выполнения одинаков: загрузите исходную рабочую книгу с помощью класса Workbook, получите доступ к нужным данным через объекты Worksheet и Cells, перенесите содержимое в целевую Workbook, а затем сохраните целевую книгу на диск.
В этом подходе исходная рабочая книга открывается один раз, а затем для каждого Worksheet в её коллекции Worksheets создаётся новая целевая Workbook. Содержимое исходного рабочего листа затем копируется в первый рабочий лист целевой рабочей книги, и целевая рабочая книга сохраняется как файл, имя которого формируется на основе имени исходного рабочего листа. Результатом является один выходной файл на каждый рабочий лист, причём каждый выходной файл содержит данные одного исходного листа.
Этот метод является правильным выбором, когда каждый рабочий лист в вашей исходной рабочей книге представляет логически независимую единицу информации (например, отдел, регион, месяц или линейку продуктов), и вы хотите передать или обработать каждую единицу отдельно.
Следующие шаги описывают, как разделить файл Excel путём копирования каждого рабочего листа в новую рабочую книгу:
Workbook и передав путь к файлу в его конструктор.Workbook.Worksheets с помощью цикла for или foreach, чтобы был обработан каждый Worksheet в исходном файле.Workbook (пустую рабочую книгу) для текущего рабочего листа.Worksheet в целевую рабочую книгу (или используйте первый рабочий лист по умолчанию) и присвойте ему осмысленное имя, в идеале совпадающее со свойством Name исходного рабочего листа.Cells исходного рабочего листа и записывая их значения в соответствующие ячейки целевого рабочего листа, или используя метод Cells.copy для переноса целого диапазона за один раз.dataDir + worksheet.getName() + ".xls"), чтобы каждый сгенерированный файл имел уникальное имя.Workbook.save целевой рабочей книги, чтобы записать файл на диск.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>
}
Ожидаемым результатом является набор новых файлов в каталоге данных, по одному файлу на каждый рабочий лист из исходной рабочей книги. Каждый файл назван в честь соответствующего исходного листа, и файл содержит данные (и при необходимости форматирование) этого единственного листа.
Иногда данные, которые вам нужно разделить, соответствуют не целому рабочему листу, а определённой прямоугольной области рабочего листа, такой как A1:D10, или именованному диапазону, представляющему конкретную таблицу. В этих случаях копирование целых рабочих листов является расточительным, и требуется более точный подход: определите исходный диапазон, скопируйте только этот диапазон в новую рабочую книгу и сохраните новый файл.
Этот подход идеален, когда вы хотите извлечь одну таблицу, блок отчёта или область данных из более крупного рабочего листа, отбросив всё несвязанное содержимое. Он также полезен для экспорта выбранных пользователем областей листа как самостоятельных файлов.
Следующие шаги описывают, как разделить файл Excel путём копирования определённого диапазона в новую рабочую книгу:
Workbook с путём к файлу.Worksheet, содержащий диапазон, который вы хотите скопировать, либо по индексу (например, первый лист), либо по имени из коллекции Worksheets.A1:C10, или именованный диапазон, полученный через коллекцию Worksheet.Cells, или диапазон, созданный с помощью Worksheet.Cells.createRange.Workbook.Worksheet целевой рабочей книги (лист по умолчанию).A1. Метод Cells.copy коллекции Cells целевого листа может использоваться для копирования целого диапазона, или вы можете перебрать ячейки исходного диапазона и записать их значения в ячейки назначения с помощью putValue. Могут быть переданы необязательные CopyOptions для управления тем, что переносится (только значения, значения и стили, формулы и так далее).Workbook.save.Ожидаемым результатом является один новый файл в каталоге данных, который содержит только значения (и при необходимости форматирование) указанного диапазона, извлечённого из исходной рабочей книги. Целевой файл не имеет связи с какими-либо другими данными в исходном файле; он содержит только извлечённый диапазон, начиная с ячейки A1 своего первого рабочего листа.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.