def exportToXls()

in tooling/export-alerts/export-alerts.py [0:0]


def exportToXls(data, templateFile, outputFile):
  wb = load_workbook(templateFile)

  wsMetric = wb['Metric Alerts']
  wsLog = wb['Log Alerts']
  wsActivity = wb["Activity Alerts"]

  # Delete any rows below the header row
  for ws in [wsMetric, wsLog, wsActivity]:
    ws.delete_rows(2, wsMetric.max_row)

  for category in data:
    for type in data[category]:
      for alert in data[category][type]:
        columnsToAdd = [
          category,
          type
          ]

        if 'type' in alert:
          match alert['type'].lower():
            case 'metric':
              wsMetric.append(columnsToAdd)
              addAlertToSheet(alert, wsMetric)
            case 'log':
              wsLog.append(columnsToAdd)
              addAlertToSheet(alert, wsLog)
            case 'activitylog':
              wsActivity.append(columnsToAdd)
              addAlertToSheet(alert, wsActivity)
            case _:
              print('Unknown alert type: ' + alert['type'])
        else:
          print(f"No alert type for alert: {category} - {type} - {alert['name']}")

  for ws in [wsMetric, wsLog, wsActivity]:

    table_name = ws.title.replace(' ', '')

    if len(ws.tables) == 0:
      ws.add_table(Table(displayName=table_name))

    table = ws.tables.get(table_name)

    table.ref = f"A1:{get_column_letter(ws.max_column)}{ws.max_row}"
    table.tableStyleInfo = TableStyleInfo(name='TableStyleMedium6', showRowStripes=True)

  wb.save(outputFile)