package iot_excelize import ( "strings" "github.com/gogf/gf/v2/errors/gerror" "github.com/xuri/excelize/v2" ) // ApplyHeaderColumnsTextStyle sets all columns with non-empty first-row headers // in the active sheet to Excel text format. func ApplyHeaderColumnsTextStyle(f *excelize.File) error { if f == nil { return gerror.New("Excel文件不能为空") } sheetName := f.GetSheetName(f.GetActiveSheetIndex()) if sheetName == "" { sheets := f.GetSheetList() if len(sheets) == 0 { return gerror.New("Excel文件没有工作表") } sheetName = sheets[0] } rows, err := f.GetRows(sheetName) if err != nil { return err } if len(rows) == 0 || len(rows[0]) == 0 { return gerror.New("Excel文件表头为空") } styleID, err := f.NewStyle(&excelize.Style{NumFmt: 49}) if err != nil { return err } for i, header := range rows[0] { if strings.TrimSpace(header) == "" { continue } colName, err := excelize.ColumnNumberToName(i + 1) if err != nil { return err } if err = f.SetColStyle(sheetName, colName, styleID); err != nil { return err } } return nil }