Скопируйте или переместите рабочие листы Excel

Файлы Excel используются для управления сложными данными, такими как бюджеты отделов или годовые отчеты о продажах. Могут быть ситуации, когда у вас есть готовый шаблон, который вы хотите использовать для создания отчета. Для этого вы можете создать копию рабочего листа шаблона. Вам также может понадобиться организовать рабочие листы, чтобы продемонстрировать поток данных. В таких случаях вы можете изменить порядок рабочих листов в соответствии с вашими требованиями. В свете этого вы узнаете, как программно копировать и перемещать рабочие листы с помощью C++.

C++ API для копирования или перемещения листов Excel

Aspose.Cells for C++ — это собственная библиотека C++, которая позволяет создавать, читать и обновлять файлы Excel, не требуя установки Microsoft Excel. API также поддерживает копирование и перемещение листов Excel. Вы можете либо установить API через NuGet, либо загрузить его напрямую из раздела Загрузки.

PM> Install-Package Aspose.Cells.Cpp

Скопируйте рабочие листы в книгу Excel с помощью C++

Ниже приведены шаги для копирования рабочих листов в книгу Excel.

Ниже приведен пример кода для копирования листа в книгу Excel с помощью C++.

// Путь к исходному каталогу.
StringPtr srcDir = new String("SourceDirectory\\");

// Выходной путь к каталогу.
StringPtr outDir = new String("OutputDirectory\\");

// Загрузите файл Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Получить рабочие листы
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// Скопируйте данные на новый лист из существующего листа в рабочей книге.
sheets->AddCopy(new String("Sheet1"));

// Сохраните файл Excel
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));

Скопируйте рабочие листы из одной рабочей книги в другую

Aspose.Cells для C++ также позволяет копировать листы между двумя файлами Excel. Ниже приведены шаги для копирования рабочего листа из одного файла Excel в другой.

Ниже приведен пример кода для копирования листа из одной книги Excel в другую с помощью C++.

// Путь к исходному каталогу.
StringPtr srcDir = new String("SourceDirectory\\");

// Выходной путь к каталогу.
StringPtr outDir = new String("OutputDirectory\\");

// Загрузите исходный файл Excel
intrusive_ptr<IWorkbook> sourceWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Загрузите целевой файл Excel
intrusive_ptr<IWorkbook> destinationWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("book1.xlsx")));

// Получить рабочие листы исходной книги
intrusive_ptr<IWorksheetCollection> sheets = sourceWorkbook->GetIWorksheets();

// Получите рабочий лист, который вы хотите скопировать
intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(0);

// Скопируйте ранее полученный лист в новую книгу.
destinationWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);

// Сохраните файл Excel
destinationWorkbook->Save(outDir->StringAppend(new String("book1_out.xlsx")));

Переместите рабочий лист в другую позицию с помощью С++

Ниже приведены шаги для изменения положения рабочего листа в книге Excel.

Ниже приведен пример кода для перемещения рабочего листа в другую позицию в той же книге с помощью C++.

// Путь к исходному каталогу.
StringPtr srcDir = new String("SourceDirectory\\");

// Выходной путь к каталогу.
StringPtr outDir = new String("OutputDirectory\\");

// Загрузите файл Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Получить рабочие листы
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// Доступ к первому листу
intrusive_ptr<IWorksheet> sheet = sheets->GetObjectByIndex(0);

// Переместите первый лист на вторую позицию в книге.
sheet->MoveTo(1);

// Сохраните файл Excel
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));

Получить бесплатную лицензию

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

Вывод

В этой статье вы узнали, как копировать листы в одной книге Excel или между разными книгами. Кроме того, вы видели, как изменить положение рабочего листа в файле Excel. Aspose.Cells for C++ предоставляет гораздо больше возможностей для работы с файлами Excel, с которыми вы можете ознакомиться, посетив официальную документацию. Если у вас возникнут вопросы, свяжитесь с нами на нашем бесплатном форуме поддержки.

Смотрите также