Copy Range Data with Style

Copy Range Data with Style

Aspose.Cells provides a range of classes and methods for working with ranges, for example, createRange(), StyleFlag, applyStyle(), etc.

This example:

  1. Creates a workbook.
  2. Fills a number of cells in the first worksheet with data.
  3. Creates a range.
  4. Creates a style object with specified formatting attributes.
  5. Applies the style to the data range.
  6. Creates a second range of cells.
  7. Copies data with the formatting from the first range to the second range.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getDataDir(CopyRangeDataWithStyle.class);
// Instantiate a new Workbook
Workbook workbook = new Workbook();
// Get the first Worksheet Cells
Cells cells = workbook.getWorksheets().get(0).getCells();
// Fill some sample data into the cells
for (int i = 0; i < 50; i++) {
for (int j = 0; j < 10; j++) {
cells.get(i, j).putValue(i + "," + j);
}
}
// Create a range (A1:D3).
Range range = cells.createRange("A1", "D3");
// Create a style object.
Style style = workbook.createStyle();
// Specify the font attribute.
style.getFont().setName("Calibri");
// Specify the shading color.
style.setForegroundColor(Color.getYellow());
style.setPattern(BackgroundType.SOLID);
// Specify the border attributes.
style.getBorders().getByBorderType(BorderType.TOP_BORDER).setLineStyle(CellBorderType.THIN);
style.getBorders().getByBorderType(BorderType.TOP_BORDER).setColor(Color.getBlue());
style.getBorders().getByBorderType(BorderType.BOTTOM_BORDER).setLineStyle(CellBorderType.THIN);
style.getBorders().getByBorderType(BorderType.BOTTOM_BORDER).setColor(Color.getBlue());
style.getBorders().getByBorderType(BorderType.LEFT_BORDER).setLineStyle(CellBorderType.THIN);
style.getBorders().getByBorderType(BorderType.LEFT_BORDER).setColor(Color.getBlue());
style.getBorders().getByBorderType(BorderType.RIGHT_BORDER).setLineStyle(CellBorderType.THIN);
style.getBorders().getByBorderType(BorderType.RIGHT_BORDER).setColor(Color.getBlue());
// Create the styleflag object.
StyleFlag flag = new StyleFlag();
// Implement font attribute
flag.setFontName(true);
// Implement the shading / fill color.
flag.setCellShading(true);
// Implment border attributes.
flag.setBorders(true);
// Set the Range style.
range.applyStyle(style, flag);
// Create a second range (L9:O11)
Range range2 = cells.createRange("L9", "O11");
// Copy the range data with formatting.
range2.copy(range);
// Save the Excel file.
workbook.save(dataDir + "CopyRangeDataWithFormatting.xlsx", SaveFormat.XLSX);