Копирование строк и столбцов — обычная задача, выполняемая при работе с файлами Excel. Могут быть ситуации, когда вам нужно программно скопировать строки или столбцы в файлах 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 с помощью С++

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

Исходный рабочий лист

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

  • Загрузите файл Excel с помощью класса IWorkbook.
  • Получите рабочий лист, на который вы хотите скопировать строку.
  • Скопируйте строку с помощью функции CopyIRow(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceRowIndex, Aspose::Cells::Systems::Int32 destinationRowIndex).
  • Сохраните файл Excel, используя команду IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String имя_файла) метод.

В следующем примере кода показано, как скопировать строку в файле Excel с помощью C++.

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

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

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

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

// Копировать строку
worksheet->GetICells()->CopyIRow(worksheet->GetICells(), 1, 15);

// Сохраните файл Excel
workbook->Save(outDir->StringAppend(new String("CopyRow_out.xlsx")));
Изображение, показывающее скопированную строку

Изображение, показывающее скопированную строку

Копирование нескольких строк в файле Excel с помощью C++

Чтобы скопировать несколько строк, мы будем использовать метод CopyIRows, который принимает дополнительный параметр, указывающий общее количество копируемых строк. Чтобы скопировать несколько строк, выполните шаги, указанные ниже.

  • Загрузите файл Excel с помощью класса IWorkbook.
  • Получите рабочий лист, на который вы хотите скопировать строки.
  • Скопируйте строки с помощью CopyIRows(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceRowIndex, Aspose::Cells::Systems::Int32 destinationRowIndex, Aspose::Cells::Systems::Int32 rowNumber).
  • Сохраните файл Excel, используя команду IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String имя_файла) метод.

В следующем примере кода показано, как скопировать несколько строк в файле Excel с помощью C++.

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

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

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

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

// Копировать строки
worksheet->GetICells()->CopyIRows(worksheet->GetICells(), 1, 15, 3);

// Сохраните файл Excel
workbook->Save(outDir->StringAppend(new String("CopyRows_out.xlsx")));
Изображение, показывающее скопированные строки

Изображение, показывающее скопированные строки

Скопируйте один столбец в файл Excel с помощью С++

Ниже приведены шаги для копирования одного столбца в файле Excel с помощью C++.

  • Загрузите файл Excel с помощью класса IWorkbook.
  • Найдите рабочий лист, на который вы хотите скопировать столбец.
  • Скопируйте столбец, используя метод CopyIColumn(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceColumnIndex, Aspose::Cells::Systems::Int32 destinationColumnIndex).
  • Сохраните файл Excel, используя команду IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String имя_файла) метод.

В следующем примере кода показано, как скопировать один столбец в файле Excel с помощью C++.

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

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

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

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

// Копировать столбец
worksheet->GetICells()->CopyIColumn(worksheet->GetICells(), 0, 6);

// Сохраните файл Excel
workbook->Save(outDir->StringAppend(new String("CopyColumn_out.xlsx")));
Изображение, показывающее скопированный столбец

Изображение, показывающее скопированный столбец

Копирование нескольких столбцов в файле Excel с помощью C++

Чтобы скопировать несколько столбцов, мы будем использовать метод CopyIColumns, который принимает дополнительный параметр, указывающий общее количество копируемых столбцов. Чтобы скопировать несколько столбцов, выполните шаги, указанные ниже.

  • Загрузите файл Excel с помощью класса IWorkbook.
  • Получите рабочий лист, на который вы хотите скопировать столбцы.
  • Скопируйте столбцы, используя метод CopyIColumns(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceColumnIndex, Aspose::Cells::Systems::Int32 destinationColumnIndex, метод Aspose::Cells::Systems::Int32 columnNumber).
  • Сохраните файл Excel, используя команду IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String имя_файла) метод.

В следующем примере кода показано, как скопировать несколько столбцов в файл Excel с помощью C++.

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

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

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

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

// Копировать столбцы
worksheet->GetICells()->CopyIColumns(worksheet->GetICells(), 0, 6, 3);

// Сохраните файл Excel
workbook->Save(outDir->StringAppend(new String("CopyColumns_out.xlsx")));
Изображение, показывающее скопированные столбцы

Изображение, показывающее скопированные столбцы

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

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

Вывод

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

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