internal/renderers/excel/defender.go (63 lines of code) (raw):

// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. package excel import ( _ "image/png" "github.com/Azure/azqr/internal/renderers" "github.com/rs/zerolog/log" "github.com/xuri/excelize/v2" ) func renderDefender(f *excelize.File, data *renderers.ReportData) { _, err := f.NewSheet("Defender") if err != nil { log.Fatal().Err(err).Msg("Failed to create Defender sheet") } records := data.DefenderTable() headers := records[0] createFirstRow(f, "Defender", headers) if len(data.Defender) > 0 { records = records[1:] currentRow := 4 for _, row := range records { currentRow += 1 cell, err := excelize.CoordinatesToCellName(1, currentRow) if err != nil { log.Fatal().Err(err).Msg("Failed to get cell") } err = f.SetSheetRow("Defender", cell, &row) if err != nil { log.Fatal().Err(err).Msg("Failed to set row") } } configureSheet(f, "Defender", headers, currentRow) } else { log.Info().Msg("Skipping Defender. No data to render") } } // renderDefenderRecommendations renders the Defender recommendations to the Excel sheet. func renderDefenderRecommendations(f *excelize.File, data *renderers.ReportData) { sheetName := "DefenderRecommendations" _, err := f.NewSheet(sheetName) if err != nil { log.Fatal().Err(err).Msg("Failed to create DefenderRecommendations sheet") } records := data.DefenderRecommendationsTable() headers := records[0] createFirstRow(f, sheetName, headers) if len(data.DefenderRecommendations) > 0 { records = records[1:] currentRow := 4 for _, row := range records { currentRow += 1 cell, err := excelize.CoordinatesToCellName(1, currentRow) if err != nil { log.Fatal().Err(err).Msg("Failed to get cell") } err = f.SetSheetRow(sheetName, cell, &row) if err != nil { log.Fatal().Err(err).Msg("Failed to set row") } setHyperLink(f, sheetName, 11, currentRow) } configureSheet(f, sheetName, headers, currentRow) } else { log.Info().Msg("Skipping DefenderRecommendations. No data to render") } }