Fix missing err handler

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
Bryan Frimin
2025-07-18 16:35:19 +02:00
parent afa5a822aa
commit f8236a0f6c
3 changed files with 41 additions and 12 deletions

View File

@@ -26,8 +26,14 @@ func GenerateSOAExcel(data SOAData) ([]byte, error) {
defer f.Close() defer f.Close()
sheetName := "State of Applicability" sheetName := "State of Applicability"
f.NewSheet(sheetName) _, err := f.NewSheet(sheetName)
f.DeleteSheet("Sheet1") if err != nil {
return nil, fmt.Errorf("cannot create sheet: %w", err)
}
if err := f.DeleteSheet("Sheet1"); err != nil {
return nil, fmt.Errorf("cannot delete sheet: %w", err)
}
if err := setupSOAHeader(f, sheetName); err != nil { if err := setupSOAHeader(f, sheetName); err != nil {
return nil, fmt.Errorf("cannot setup Excel header: %w", err) return nil, fmt.Errorf("cannot setup Excel header: %w", err)
@@ -183,20 +189,26 @@ func processField(f *excelize.File, sheetName string, row int, value interface{}
col := config.Columns[0] col := config.Columns[0]
cellRef := fmt.Sprintf("%s%d", col, row) cellRef := fmt.Sprintf("%s%d", col, row)
f.SetCellValue(sheetName, cellRef, v) if err := f.SetCellValue(sheetName, cellRef, v); err != nil {
return nil, fmt.Errorf("cannot set cell value: %w", err)
}
textStyleID, err := createCellStyle(f, getTextStyle()) textStyleID, err := createCellStyle(f, getTextStyle())
if err != nil { if err != nil {
return nil, fmt.Errorf("cannot create text style: %w", err) return nil, fmt.Errorf("cannot create text style: %w", err)
} }
f.SetCellStyle(sheetName, cellRef, cellRef, textStyleID) if err := f.SetCellStyle(sheetName, cellRef, cellRef, textStyleID); err != nil {
return nil, fmt.Errorf("cannot set cell style: %w", err)
}
if isFirstRow { if isFirstRow {
width := config.DefaultWidth width := config.DefaultWidth
if len(config.Width) > 0 { if len(config.Width) > 0 {
width = config.Width[0] width = config.Width[0]
} }
f.SetColWidth(sheetName, col, col, width) if err := f.SetColWidth(sheetName, col, col, width); err != nil {
return nil, fmt.Errorf("cannot set column width: %w", err)
}
} }
if config.HasFilter { if config.HasFilter {
@@ -226,20 +238,26 @@ func processField(f *excelize.File, sheetName string, row int, value interface{}
col := config.Columns[0] col := config.Columns[0]
cellRef := fmt.Sprintf("%s%d", col, row) cellRef := fmt.Sprintf("%s%d", col, row)
f.SetCellValue(sheetName, cellRef, joinedValue) if err := f.SetCellValue(sheetName, cellRef, joinedValue); err != nil {
return nil, fmt.Errorf("cannot set cell value: %w", err)
}
textStyleID, err := createCellStyle(f, getTextStyle()) textStyleID, err := createCellStyle(f, getTextStyle())
if err != nil { if err != nil {
return nil, fmt.Errorf("cannot create text style: %w", err) return nil, fmt.Errorf("cannot create text style: %w", err)
} }
f.SetCellStyle(sheetName, cellRef, cellRef, textStyleID) if err := f.SetCellStyle(sheetName, cellRef, cellRef, textStyleID); err != nil {
return nil, fmt.Errorf("cannot set cell style: %w", err)
}
if isFirstRow { if isFirstRow {
width := config.DefaultWidth width := config.DefaultWidth
if len(config.Width) > 0 { if len(config.Width) > 0 {
width = config.Width[0] width = config.Width[0]
} }
f.SetColWidth(sheetName, col, col, width) if err := f.SetColWidth(sheetName, col, col, width); err != nil {
return nil, fmt.Errorf("cannot set column width: %w", err)
}
} }
if config.HasFilter { if config.HasFilter {

View File

@@ -15,6 +15,7 @@
package soagen package soagen
import ( import (
"fmt"
"time" "time"
"github.com/xuri/excelize/v2" "github.com/xuri/excelize/v2"
@@ -116,14 +117,18 @@ func applyHeaderLayout(f *excelize.File, sheetName string, layout HeaderLayout,
func applyCells(f *excelize.File, sheetName string, cells []HeaderCell, headerStyle, cellStyle int) error { func applyCells(f *excelize.File, sheetName string, cells []HeaderCell, headerStyle, cellStyle int) error {
for _, cell := range cells { for _, cell := range cells {
f.SetCellValue(sheetName, cell.Cell, cell.Value) if err := f.SetCellValue(sheetName, cell.Cell, cell.Value); err != nil {
return fmt.Errorf("cannot set cell value: %w", err)
}
style := cellStyle style := cellStyle
if cell.Style == "header" { if cell.Style == "header" {
style = headerStyle style = headerStyle
} }
f.SetCellStyle(sheetName, cell.Cell, cell.Cell, style) if err := f.SetCellStyle(sheetName, cell.Cell, cell.Cell, style); err != nil {
return fmt.Errorf("cannot set cell style: %w", err)
}
} }
return nil return nil
} }

View File

@@ -78,12 +78,18 @@ func applyDataValidation(f *excelize.File, sheetName, col string, row int, valid
dv.Sqref = fmt.Sprintf("%s%d:%s1000", col, row, col) // Apply to reasonable range dv.Sqref = fmt.Sprintf("%s%d:%s1000", col, row, col) // Apply to reasonable range
dv.SetDropList(validation) dv.SetDropList(validation)
dv.SetError(excelize.DataValidationErrorStyleStop, "Invalid Input", "Please select from the dropdown list.") dv.SetError(excelize.DataValidationErrorStyleStop, "Invalid Input", "Please select from the dropdown list.")
return f.AddDataValidation(sheetName, dv) if err := f.AddDataValidation(sheetName, dv); err != nil {
return fmt.Errorf("cannot add data validation: %w", err)
}
return nil
} }
func setColumnWidth(f *excelize.File, sheetName, col string, width float64) error { func setColumnWidth(f *excelize.File, sheetName, col string, width float64) error {
if width > 0 { if width > 0 {
f.SetColWidth(sheetName, col, col, width) if err := f.SetColWidth(sheetName, col, col, width); err != nil {
return fmt.Errorf("cannot set column width: %w", err)
}
} }
return nil return nil
} }