# Report Sheet Settings

## Content

ReportSheet has settings to load a TemplateSheet and combine it with the data in the data manager to generate the corresponding report.
You can use various methods and properties of the `ReportSheet` class to configure the settings for a report sheet.
The following code sample creates a ReportSheet with basic settings.

```auto
// Load the data from the remote.
ordersTable.fetch().then(() => {
     const reportSheet = spread.addSheetTab(0, 'report1', GC.Spread.Sheets.SheetType.reportSheet);
     const templateSheet = reportSheet.getTemplate();

// Set style for the template.
const headerStyle = new GC.Spread.Sheets.Style();
headerStyle.backColor = '#80CBC4';
headerStyle.foreColor = '#424242';
headerStyle.hAlign = GC.Spread.Sheets.HorizontalAlign.right;
headerStyle.font = '12px Maine';

const dataStyle = new GC.Spread.Sheets.Style();
dataStyle.foreColor = '#424242';
dataStyle.hAlign = GC.Spread.Sheets.HorizontalAlign.right;
dataStyle.font = '12px Maine';
                
const border = new GC.Spread.Sheets.LineBorder('#E0E0E0', 1);
dataStyle.borderBottom = border;
dataStyle.borderTop = border;
dataStyle.borderLeft = border;
dataStyle.borderRight = border;
                
const colWidthArray = [90, 90, 90, 80, 220, 150, 110];
colWidthArray.forEach((width, i) => {
    templateSheet.setColumnWidth(i, width);
});
templateSheet.getRange('A1:G1').setStyle(headerStyle);
templateSheet.getRange('A2:G2').setStyle(dataStyle);
templateSheet.setFormatter(1, 2, 'yyyy-MM-dd');

// Set value and binding for the template.
const columns = ['orderId', 'customerId', 'orderDate', 'freight', 'shipName', 'shipCity', 'shipCountry'];
columns.forEach((columnName, i) => {
        templateSheet.setValue(0, i, `${columnName[0].toUpperCase()}${columnName.substring(1)}`);
        templateSheet.setTemplateCell(1, i, {
                 type: 'List',
                 binding: `Orders[${columnName}]`,
        });
});

reportSheet.refresh();
```