Копіювання або переміщення аркушів 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 for 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")));

Перемістіть робочий аркуш в іншу позицію за допомогою C++

Нижче наведено кроки, щоб змінити положення робочого аркуша в книзі 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, які ви можете дослідити, відвідавши офіційну документацію. У разі будь-яких запитань зв’яжіться з нами на нашому безкоштовному форумі підтримки.

Дивись також