From d7ba131e756057307499fb2c3349c43e8e2fd38c Mon Sep 17 00:00:00 2001 From: George Abbott <george@gabbott.dev> Date: Wed, 1 Nov 2023 22:31:09 +0000 Subject: Commit all --- values.go | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 values.go (limited to 'values.go') diff --git a/values.go b/values.go new file mode 100644 index 0000000..a04a25a --- /dev/null +++ b/values.go @@ -0,0 +1,53 @@ +package saggytrousers + +import ( + xl "anyxcelize" + "fmt" +) + +// Provides functions for getting the header as []string and the body (except +// the header) as [][]any, which can be passed into other functions from there. + +func GetHeader(file *xl.File, sheet string) []string { + rows, err := file.Rows(sheet) + if err != nil { + str := fmt.Sprintf("st.GetHeader: call to Rows(sheet: %s) failed with error %v", sheet, err) + panic(str) + } + + rows.Next() + header, err := rows.Columns() + if err != nil { + str := fmt.Sprintf("st.GetHeader: Could not get a header.") + panic(str) + } + + return header +} + +// Get all rows, except the header. +func GetRows(file *xl.File, sheet string) [][]any { + rows, err := file.GetRowsGeneric(sheet) + if err != nil { + str := fmt.Sprintf("saggytrousers.GetRows: call to GetRowsGeneric(%s) failed with error %v", sheet, err) + panic(str) + } + + return rows[1:] +} + +func GetColumns(file *xl.File, sheet string) [][]any { + cols, err := file.GetColsGeneric(sheet) + if err != nil { + str := fmt.Sprintf("saggytrousers.GetColumns: call to GetRowsGeneric(%s) failed with error %v", sheet, err) + panic(str) + } + + var ret [][]any + for _, sa := range cols { + exceptFirst := sa[1:] + ret = append(ret, exceptFirst) + } + + return ret +} -- cgit v1.2.1