Копирование строк и колонок

Введение

Иногда вам нужно скопировать строки и столбцы в рабочем листе без копирования всего листа. С помощью Aspose.Cells это возможно скопировать строки и столбцы внутри или между книгами. При копировании строки (или столбца) копируются также содержащиеся в нем данные, включая формулы - с обновленными ссылками - и значения, комментарии, форматирование, скрытые ячейки, изображения и другие объекты рисования.

Как скопировать строки и столбцы с помощью Microsoft Excel

  1. Выберите строку или колонку, которую вы хотите скопировать.
  2. Чтобы скопировать строки или колонки, нажмите Копировать на панели Стандартные функции или нажмите CTRL+C.
  3. Выберите строку или колонку ниже или справа от места, куда вы хотите скопировать ваш выбор.
  4. При копировании строк или колонок нажмите Скопированные ячейки на меню Вставка.

Как вставить строки и столбцы с использованием опций вставки в программе Microsoft Excel

  1. Выберите ячейки, содержащие данные или другие параметры, которые вы хотите скопировать.
  2. На вкладке “Главная” нажмите Копировать.
  3. Щелкните первую ячейку в области, куда вы хотите вставить скопированное.
  4. На вкладке “Главная” щелкните стрелку рядом с Вставить, затем выберите Специальная вставка.
  5. Выберите нужные опции.

Как скопировать строки и столбцы с помощью Aspose.Cells for .NET

Как скопировать отдельные строки

Aspose.Cells предоставляет метод copy_row класса Cells. Этот метод копирует все типы данных, включая формулы, значения, комментарии, форматы ячеек, скрытые ячейки, изображения и другие объекты рисования из исходной строки в целевую строку.

Метод copy_row принимает следующие параметры:

  • исходный объект Cells,
  • индекс исходной строки и
  • индекс целевой строки.

Используйте этот метод для копирования строки внутри листа или на другой лист. Метод copy_row работает аналогично Microsoft Excel. Так, например, вам не нужно устанавливать высоту целевой строки явно, это значение также копируется.

В следующем примере показано, как скопировать строку на листе. Он использует шаблонный файл Microsoft Excel и копирует вторую строку (с данными, форматированием, комментариями, изображениями и т. д.) и вставляет ее в двенадцатую строку на том же листе.

Вы можете пропустить шаг, который получает высоту исходной строки с помощью метода Cells.get_row_height, а затем задает высоту целевой строки с помощью метода Cells.set_row_height, поскольку метод copy_row автоматически учитывает высоту строки.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Open the existing excel file.
excelWorkbook1 = Workbook(dataDir + "book1.xls")
# Get the first worksheet in the workbook.
wsTemplate = excelWorkbook1.worksheets[0]
# Copy the second row with data, formattings, images and drawing objects
# To the 16th row in the worksheet.
wsTemplate.cells.copy_row(wsTemplate.cells, 1, 15)
# Save the excel file.
excelWorkbook1.save(dataDir + "output.xls")

Как скопировать несколько строк

Вы также можете скопировать несколько строк на новое место, используя метод Cells.copy_rows, который принимает дополнительный параметр типа целое число для указания количества исходных строк, которые нужно скопировать.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Create an instance of Workbook class by loading the existing spreadsheet
workbook = Workbook(dataDir + "aspose-sample.xlsx")
# Get the cells collection of worksheet by name Rows
cells = workbook.worksheets.get("Rows").cells
# Copy the first 3 rows to 7th row
cells.copy_rows(cells, 0, 6, 3)
# Save the result on disc
workbook.save(dataDir + "output_out.xlsx")

Как копировать столбцы

Aspose.Cells предоставляет метод copy_column класса Cells, этот метод копирует все типы данных, включая формулы - с обновленными ссылками - и значения, комментарии, форматы ячеек, скрытые ячейки, изображения и другие объекты рисования из исходного столбца в целевой столбец.

Метод copy_column принимает следующие параметры:

  • исходный объект Cells,
  • индекс исходного столбца, и
  • индекс столбца назначения.

Используйте метод copy_column для копирования столбца в листе или на другой лист.

В этом примере копируется столбец из листа и вставляется в лист другой книги.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Create another Workbook.
excelWorkbook1 = Workbook(dataDir + "book1.xls")
# Get the first worksheet in the book.
ws1 = excelWorkbook1.worksheets[0]
# Copy the first column from the first worksheet of the first workbook into
# The first worksheet of the second workbook.
ws1.cells.copy_column(ws1.cells, ws1.cells.columns[0].index, ws1.cells.columns[2].index)
# Autofit the column.
ws1.auto_fit_column(2)
# Save the excel file.
excelWorkbook1.save(dataDir + "output.xls")

Как скопировать несколько столбцов

Подобно методу Cells.copy_rows, API Aspose.Cells также предоставляют метод Cells.copy_columns для копирования нескольких исходных столбцов в новое место.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Create an instance of Workbook class by loading the existing spreadsheet
workbook = Workbook(dataDir + "aspose-sample.xlsx")
# Get the cells collection of worksheet by name Columns
cells = workbook.worksheets.get("Columns").cells
# Copy the first 3 columns 7th column
cells.copy_columns(cells, 0, 6, 3)
# Save the result on disc
workbook.save(dataDir + "output_out.xlsx")

Как вставить строки и столбцы с параметрами вставки

Теперь Aspose.Cells предоставляет PasteOptions при использовании функций copy_rows и copy_columns. Это позволяет установить соответствующий параметр вставки, аналогичный Excel.

from aspose.cells import CopyOptions, PasteOptions, PasteType, SaveFormat, Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
# Source directory
sourceDir = RunExamples.Get_SourceDirectory()
# Output directory
outputDir = RunExamples.Get_OutputDirectory()
# Load sample excel file
wb = Workbook(sourceDir + "sampleChangeChartDataSource.xlsx")
# Access the first sheet which contains chart
source = wb.worksheets[0]
# Add another sheet named DestSheet
destination = wb.worksheets.add("DestSheet")
# Set CopyOptions.ReferToDestinationSheet to true
options = CopyOptions()
options.refer_to_destination_sheet = True
# Set PasteOptions
pasteOptions = PasteOptions()
pasteOptions.paste_type = PasteType.VALUES
pasteOptions.only_visible_cells = True
# Copy all the rows of source worksheet to destination worksheet which includes chart as well
# The chart data source will now refer to DestSheet
destination.cells.copy_rows(source.cells, 0, 0, source.cells.max_display_range.row_count, options, pasteOptions)
# Save workbook in xlsx format
wb.save(outputDir + "outputChangeChartDataSource.xlsx", SaveFormat.XLSX)