Копирование и перемещение рабочих листов
Иногда вам нужно несколько рабочих листов с общим форматированием и данными. Например, если вы работаете с квартальными бюджетами, вы можете создать рабочую книгу с листами, содержащими одинаковые заголовки столбцов, заголовки строк и формулы. Есть способ сделать это: создать один лист, а затем скопировать его.
Aspose.Cells поддерживает копирование и перемещение рабочих листов внутри или между книгами. Рабочий лист с данными, форматированием, таблицами, матрицами, диаграммами, изображениями и другими объектами копируется с высочайшей степенью точности.
Перемещение или копирование листов с помощью Microsoft Excel
Ниже приведены шаги, связанные с копированием и перемещением рабочих листов внутри или между книгами в Microsoft Excel.
- Чтобы переместить или скопировать листы в другую книгу, откройте книгу, которая получит листы.
- Переключитесь на книгу, содержащую листы, которые вы хотите переместить или скопировать, а затем выберите листы.
- НаРедактировать меню, нажмитеПереместить или скопировать лист.
- вБронировать щелкните книгу, чтобы получить листы.
- Чтобы переместить или скопировать выбранные листы в новую книгу, щелкнитеНовая книга.
- вПеред листом щелкните лист, перед которым вы хотите вставить перемещенные или скопированные листы.
- Чтобы копировать листы, а не перемещать их, выберите значокСоздать копию флажок.
Скопируйте рабочие листы в рабочую книгу с помощью Aspose.Cells
Aspose.Cells предоставляет перегруженный методДобавитьКопировать()который используется для добавления листа в коллекцию и копирования данных из существующего листа. Одна версия метода принимает в качестве параметра индекс исходного листа. Другая версия берет имя исходного рабочего листа. В следующем примере показано, как скопировать существующий рабочий лист в рабочую книгу.
//For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C | |
//Source directory path | |
StringPtr srcDir = new String("..\\Data\\01_SourceDirectory\\"); | |
//Output directory path | |
StringPtr outDir = new String("..\\Data\\02_OutputDirectory\\"); | |
//Path of input excel file | |
StringPtr sampleCopyingAndMovingWorksheets = srcDir->StringAppend(new String("sampleCopyingAndMovingWorksheets.xlsx")); | |
//Path of output excel file | |
StringPtr outputCopyingAndMovingWorksheets = outDir->StringAppend(new String("outputCopyingAndMovingWorksheets.xlsx")); | |
//Create workbook | |
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(sampleCopyingAndMovingWorksheets); | |
//Create worksheets object with reference to the sheets of the workbook. | |
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets(); | |
//Copy data to a new sheet from an existing sheet within the workbook. | |
sheets->AddCopy(new String("Test1")); | |
//Save the Excel file. | |
workbook->Save(outputCopyingAndMovingWorksheets); | |
StringPtr msg = new String("Worksheet copied successfully with in a workbook!"); | |
Console::WriteLine(msg); |
Перемещение рабочих листов в рабочей книге
Aspose.Cells предоставляет методПереместить()который используется для перемещения рабочего листа в другое место в той же электронной таблице. Метод принимает индекс целевого рабочего листа в качестве параметра. В следующем примере показано, как переместить лист в другое место в книге.
//For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C | |
//Source directory path | |
StringPtr srcDir = new String("..\\Data\\01_SourceDirectory\\"); | |
//Output directory path | |
StringPtr outDir = new String("..\\Data\\02_OutputDirectory\\"); | |
//Path of input excel file | |
StringPtr sampleCopyingAndMovingWorksheets = srcDir->StringAppend(new String("sampleCopyingAndMovingWorksheets.xlsx")); | |
//Path of output excel file | |
StringPtr outputCopyingAndMovingWorksheets = outDir->StringAppend(new String("outputCopyingAndMovingWorksheets.xlsx")); | |
//Create workbook | |
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(sampleCopyingAndMovingWorksheets); | |
//Create worksheets object with reference to the sheets of the workbook. | |
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets(); | |
//Access the first sheet | |
intrusive_ptr<IWorksheet> sheet = sheets->GetObjectByIndex(0); | |
//Move the first sheet to the third position in the workbook. | |
sheet->MoveTo(2); | |
//Save the Excel file. | |
workbook->Save(outputCopyingAndMovingWorksheets); | |
StringPtr msg = new String("Worksheet moved successfully with in a workbook!"); | |
Console::WriteLine(msg); |