Копирование диапазонов Excel

Введение

В Excel вы можете выбрать диапазон, скопировать его, а затем вставить его с определенными параметрами на ту же рабочую книгу, другие листы или другие файлы.

Копирование диапазонов с использованием Aspose.Cells

Aspose.Cells предоставляет некоторые перегрузки методов Range.Copy для копирования диапазона.

Копировать диапазон

Создание двух диапазонов: исходного диапазона, целевого диапазона, а затем копирование исходного диапазона в целевой диапазон с помощью метода Range.Copy.

См. следующий код:

// Instantiate a new Workbook.
Workbook workbook = new Workbook();
// Get all the worksheets in the book.
WorksheetCollection worksheets = workbook.getWorksheets();
// Get the first worksheet in the worksheets collection.
Worksheet worksheet = workbook.getWorksheets().get(0);
// Create a range of cells.
Range sourceRange = worksheet.getCells().createRange("A1", "A2");
// Input some data with some formats into a few cells in the range.
sourceRange.get(0, 0).putValue("Test");
sourceRange.get(1, 0).putValue("123");
// Create target range of cells.
Range targetRange = worksheet.getCells().createRange("B1", "B2");
// Copy source range to target range in the same workhseet
targetRange.copy(sourceRange);
// Create target range of cells.
workbook.getWorksheets().add();
worksheet = workbook.getWorksheets().get(1);
targetRange = worksheet.getCells().createRange("A1", "A2");
// Copy source range to target range in another workhseet
targetRange.copy(sourceRange);
//Copy to another workbook
Workbook anotherWorkbook = new Workbook();
worksheet = workbook.getWorksheets().get(0);
targetRange = worksheet.getCells().createRange("A1", "A2");
// Copy source range to target range in another workbook
targetRange.copy(sourceRange);
view raw Copy-Range.java hosted with ❤ by GitHub

Вставка диапазона с параметрами

Aspose.Cells поддерживает вставку диапазона с определенным типом.

// Instantiate a new Workbook.
Workbook workbook = new Workbook();
// Get all the worksheets in the book.
WorksheetCollection worksheets = workbook.getWorksheets();
// Get the first worksheet in the worksheets collection.
Worksheet worksheet = workbook.getWorksheets().get(0);
// Create a range of cells.
Range sourceRange = worksheet.getCells().createRange("A1", "A2");
// Input some data with some formats into a few cells in the range.
sourceRange.get(0, 0).putValue("Test");
sourceRange.get(1, 0).putValue("123");
// Create target range of cells.
Range targetRange = worksheet.getCells().createRange("B1", "B2");
// Init paste options.
PasteOptions options = new PasteOptions();
// Set paste type.
options.setPasteType(PasteType.VALUES_AND_FORMATS);
options.setSkipBlanks(true);
// Copy source range to target range
targetRange.copy(sourceRange, options);

Только копирование данных диапазона.

Также вы можете скопировать данные с помощью метода Range.CopyData, как показано в следующем коде:

// Instantiate a new Workbook.
Workbook workbook = new Workbook();
// Get all the worksheets in the book.
WorksheetCollection worksheets = workbook.getWorksheets();
// Get the first worksheet in the worksheets collection.
Worksheet worksheet = workbook.getWorksheets().get(0);
// Create a range of cells.
Range sourceRange = worksheet.getCells().createRange("A1", "A2");
// Set a few cells in the range.
sourceRange.get(0, 0).putValue("Test");
sourceRange.get(1, 0).putValue("123");
// Create target range of cells.
Range targetRange = worksheet.getCells().createRange("B1", "B2");
//Only copy data the range.
targetRange.CopyData(sourceRange);