Копирование строк и столбцов
Вступление
Иногда вам нужно скопировать строки и столбцы на листе, не копируя весь лист. С помощью Aspose.Cells можно копировать строки и столбцы внутри или между книгами. При копировании строки (или столбца) содержащиеся в ней данные, включая формулы (с обновленными ссылками), а также значения, комментарии, форматирование, скрытые ячейки, изображения и другие объекты чертежа также копируются.
Копирование строк и столбцов с помощью Microsoft Excel
- Выберите строку или столбец, которые вы хотите скопировать.
- Чтобы скопировать строки или столбцы, щелкнитеКопировать наСтандарт панели инструментов или нажмитеCTRL+С.
- Выберите строку или столбец ниже или справа от того места, куда вы хотите скопировать свой выбор.
- При копировании строк или столбцов щелкнитеСкопировано Cells наВставлять меню.
Вставка строк и столбцов с использованием параметров вставки с Microsoft Excel
- Выберите ячейки, содержащие данные или другие атрибуты, которые вы хотите скопировать.
- На вкладке Главная щелкнитеКопировать.
- Щелкните первую ячейку в области, где вы хотитевставить что ты скопировал.
- На вкладке Главная щелкните стрелку рядом сВставить , а затем выберитеВставить Специальный.
- Выберитепараметры ты хочешь.
Использование Aspose.Cells
Копирование отдельных строк
Aspose.Cells обеспечиваетКопиРоу методCellsучебный класс. Этот метод копирует все типы данных, включая формулы, значения, комментарии, форматы ячеек, скрытые ячейки, изображения и другие объекты рисования из исходной строки в целевую строку.
КопиРоуметод принимает следующие параметры:
- источникCellsобъект,
- индекс исходной строки и
- индекс строки назначения.
Используйте этот метод, чтобы скопировать строку на листе или на другой лист.КопиРоуметод работает аналогично Microsoft Excel. Так, например, вам не нужно явно задавать высоту строки назначения, это значение также копируется.
В следующем примере показано, как скопировать строку на листе. Он использует шаблон файла Excel Microsoft и копирует вторую строку (вместе с данными, форматированием, комментариями, изображениями и т. д.) и вставляет ее в 12-ю строку на том же рабочем листе.
Вы можете пропустить шаг, который получает исходную высоту строки, используяCells.GetRowHeight метод, а затем устанавливает высоту строки назначения с помощьюCells.SetRowHeight метод какКопиРоуметод автоматически заботится о высоте строки.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Open the existing excel file. | |
Workbook excelWorkbook1 = new Workbook(dataDir + "book1.xls"); | |
// Get the first worksheet in the workbook. | |
Worksheet wsTemplate = excelWorkbook1.Worksheets[0]; | |
// Copy the second row with data, formattings, images and drawing objects | |
// To the 16th row in the worksheet. | |
wsTemplate.Cells.CopyRow(wsTemplate.Cells, 1, 15); | |
// Save the excel file. | |
excelWorkbook1.Save(dataDir + "output.xls"); |
При копировании строк важно отметить связанные изображения, диаграммы или другие объекты рисования, так как это то же самое с Microsoft Excel:
- Если индекс исходной строки равен 5, изображение, диаграмма и т. д. копируются, если они содержатся в трех строках (индекс начальной строки равен 4, а индекс конечной строки равен 6).
- Существующие изображения, диаграммы и т. д. в строке назначения не будут удалены.
Копирование нескольких строк
Вы также можете скопировать несколько строк в новое место назначения, используяCells.CopyRowsметод, который принимает дополнительный параметр типа integer для указания количества копируемых исходных строк.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create an instance of Workbook class by loading the existing spreadsheet | |
Workbook workbook = new Workbook(dataDir + "aspose-sample.xlsx"); | |
// Get the cells collection of worksheet by name Rows | |
Cells cells = workbook.Worksheets["Rows"].Cells; | |
// Copy the first 3 rows to 7th row | |
cells.CopyRows(cells, 0, 6, 3); | |
// Save the result on disc | |
workbook.Save(dataDir + "output_out.xlsx"); |
Копирование столбцов
Aspose.Cells обеспечиваетКопиКолонка методCellsclass этот метод копирует все типы данных, включая формулы (с обновленными ссылками) и значения, комментарии, форматы ячеек, скрытые ячейки, изображения и другие объекты рисования из исходного столбца в целевой столбец.
КопиКолонкаметод принимает следующие параметры:
- источникCellsобъект,
- индекс исходного столбца и
- индекс столбца назначения.
ИспользоватьКопиКолонкаспособ копирования столбца на листе или на другой лист.
В этом примере столбец копируется с листа и вставляется на лист в другой книге.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create another Workbook. | |
Workbook excelWorkbook1 = new Workbook(dataDir + "book1.xls"); | |
// Get the first worksheet in the book. | |
Worksheet 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.CopyColumn(ws1.Cells, ws1.Cells.Columns[0].Index, ws1.Cells.Columns[2].Index); | |
// Autofit the column. | |
ws1.AutoFitColumn(2); | |
// Save the excel file. | |
excelWorkbook1.Save(dataDir + "output.xls"); |
Копирование нескольких столбцов
Похожий наCells.CopyRows метод, API-интерфейсы Aspose.Cells также предоставляютCells.CopyColumnsметод, чтобы скопировать несколько исходных столбцов в новое место.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create an instance of Workbook class by loading the existing spreadsheet | |
Workbook workbook = new Workbook(dataDir + "aspose-sample.xlsx"); | |
// Get the cells collection of worksheet by name Columns | |
Cells cells = workbook.Worksheets["Columns"].Cells; | |
// Copy the first 3 columns 7th column | |
cells.CopyColumns(cells, 0, 6, 3); | |
// Save the result on disc | |
workbook.Save(dataDir + "output_out.xlsx"); |
Вставка строк/столбцов с параметрами вставки
Aspose.Cells теперь обеспечиваетПараметры вставки при использовании функцийКопиРовс иКопиКолонкс. Это позволяет установить соответствующий параметр вставки, аналогичный Excel.
// 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 | |
string sourceDir = RunExamples.Get_SourceDirectory(); | |
//Output directory | |
string outputDir = RunExamples.Get_OutputDirectory(); | |
// Load sample excel file | |
Workbook wb = new Workbook(sourceDir + "sampleChangeChartDataSource.xlsx"); | |
// Access the first sheet which contains chart | |
Worksheet source = wb.Worksheets[0]; | |
// Add another sheet named DestSheet | |
Worksheet destination = wb.Worksheets.Add("DestSheet"); | |
// Set CopyOptions.ReferToDestinationSheet to true | |
CopyOptions options = new CopyOptions(); | |
options.ReferToDestinationSheet = true; | |
// Set PasteOptions | |
PasteOptions pasteOptions = new PasteOptions(); | |
pasteOptions.PasteType = PasteType.Values; | |
pasteOptions.OnlyVisibleCells = 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.CopyRows(source.Cells, 0, 0, source.Cells.MaxDisplayRange.RowCount, options, pasteOptions); | |
// Save workbook in xlsx format | |
wb.Save(outputDir + "outputChangeChartDataSource.xlsx", SaveFormat.Xlsx); |