anchor.diff:            '$_resultTableColumnStartAddress$_resultTableRowStartAddress:'
             '$endAddress';
         final table = context.workbook.tables.add(tableAddress, true);
  -      table.name = tableName;
  +      table
  +        ..name = tableName
  +        ..style = _tableStyle;
   
         // Adds and formats table header.
         table.getHeaderRowRange()
           ..values = [_tableHeader]
  -        ..format.font.name = _fontName
  -        ..format.font.size = _fontSize
           ..format.font.bold = true
           ..format.horizontalAlignment = _centerAlignment
           ..format.borders.getItem('EdgeTop').style = _borderStyle
           ..format.borders.getItem('EdgeBottom').style = _borderStyle;
   
         // Adds and formats table body.
  -      table.getDataBodyRange()
  -        ..formulas = tableBody
  -        ..format.font.name = _fontName
  -        ..format.font.size = _fontSize
  -        ..format.horizontalAlignment = _centerAlignment;
  -
  -      // Formats the Daily Max and Spent column as currency.
  -      table.columns.getItem('Daily Max').getRange().numberFormat =
  +      table.getDataBodyRange().formulas = tableBody;
  +
  +      // Formats the Daily Max column as currency.
  +      table.columns.getItem(_dailyMaxColumnName).getRange().numberFormat =
             _currencyFormat;
  -      table.columns.getItem('Spent').getRange().numberFormat = _currencyFormat;
  +
  +      // Center all columns except for display name column(default to left
  +      // align), and all columns related to numbers(default to right align).
  +      for (final columnName in _tableHeader) {
  +        if (columnName != _displayNameColumnName &&
  +            columnName != _budgetColumnName &&
  +            columnName != _spentColumnName &&
  +            columnName != _currentPacingColumnName &&
  +            columnName != _dailyMaxColumnName &&
  +            columnName != _dailyMaxImpressionColumnName) {
  +          table.columns
  +              .getItem(columnName)
  +              .getRange()
  +              .format
  +              .horizontalAlignment = _centerAlignment;
  +        }
  +      }
   
         // Auto-fits all used cells.
         sheet.getUsedRange().getEntireColumn().format.autofitColumns();
  
positive.code:       // Adds and formats the underpacing table.
        _underpacingTable[0][1] = highlightUnderpacing;
        sheet.getRange('$sheetName!$_underpacingTableAddress')
          ..format.font.name = _fontName
          ..format.font.size = _fontSize
          ..format.font.bold = true
          ..format.horizontalAlignment = _centerAlignment
          ..values = _underpacingTable;
        sheet
            .getRange('$sheetName!$_underpacingHeaderAddress')
            .format
            .horizontalAlignment = _leftAlignment;
        sheet
            .getRange('$sheetName!$_underpacingValueAddress')
            .format
            .horizontalAlignment = _rightAlignment;
  
        // Turns [insertionOrderList] into table rows.
        final tableBody = insertionOrderList.map(_generateTableRow).toList();
  
negative.code:       final range = table.getDataBodyRange();
        final format = range.conditionalFormats.add('Custom');
  
        format.custom.rule.formula = 'AND($_highlightOptionAddress=TRUE,'
            '$_currentPacingColumnAddress < $_thresholdAddress)';
  
        format.custom.format.fill.color = _underpacingFormatFill;
        format.custom.format.font.color = _underpacingFormatFont;
  
        // All operations are complete.
        return context.sync();
      })).then(allowInterop((value) {
        formatCompleter.complete();
      }));
  
      return formatCompleter.future;
  