Copier uniquement le style de la plage avec C++
Contents
[
Hide
]
Copier uniquement les données de la plage et Copier les données de la plage avec style expliquent comment copier des données d’une plage à une autre en solo ou entièrement avec la mise en forme. Il est aussi possible de copier uniquement la mise en page. Cet article montre comment.
Cet exemple crée un classeur, le remplit de données et copie uniquement le style d’une plage.
- Créer une plage.
- Créer un objet Style avec des attributs de mise en forme spécifiés.
- Appliquer la mise en forme de style à la plage.
- Créer une deuxième plage de cellules.
- Copier la mise en forme de la première plage vers la deuxième plage.
#include <iostream>
#include <string>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
Workbook workbook;
Cells cells = workbook.GetWorksheets().Get(0).GetCells();
for (int i = 0; i < 50; i++)
{
for (int j = 0; j < 10; j++)
{
std::wstring value = std::to_wstring(i) + L"," + std::to_wstring(j);
cells.Get(i, j).PutValue(U16String(reinterpret_cast<const char16_t*>(value.c_str())));
}
}
Range range = cells.CreateRange(u"A1", u"D3");
Style style = workbook.CreateStyle();
style.GetFont().SetName(u"Calibri");
style.SetForegroundColor(Color::Yellow());
style.SetPattern(BackgroundType::Solid);
style.GetBorders().Get(BorderType::TopBorder).SetLineStyle(CellBorderType::Thin);
style.GetBorders().Get(BorderType::TopBorder).SetColor(Color::Blue());
style.GetBorders().Get(BorderType::BottomBorder).SetLineStyle(CellBorderType::Thin);
style.GetBorders().Get(BorderType::BottomBorder).SetColor(Color::Blue());
style.GetBorders().Get(BorderType::LeftBorder).SetLineStyle(CellBorderType::Thin);
style.GetBorders().Get(BorderType::LeftBorder).SetColor(Color::Blue());
style.GetBorders().Get(BorderType::RightBorder).SetLineStyle(CellBorderType::Thin);
style.GetBorders().Get(BorderType::RightBorder).SetColor(Color::Blue());
StyleFlag flag1;
flag1.SetFontName(true);
flag1.SetCellShading(true);
flag1.SetBorders(true);
range.ApplyStyle(style, flag1);
Range range2 = cells.CreateRange(u"C10", u"E13");
range2.CopyStyle(range);
U16String outputPath = outDir + u"copyrangestyle.out.xls";
workbook.Save(outputPath);
std::cout << "Range style copied successfully!" << std::endl;
Aspose::Cells::Cleanup();
}