package main import ( "bytes" _ "embed" "fmt" "log" "strconv" "git.ecogood.org/andreas.schroepfer/excelConverter/pkg/ecalc" "git.ecogood.org/andreas.schroepfer/excelConverter/pkg/loader" "git.ecogood.org/andreas.schroepfer/excelConverter/pkg/set" excelize "github.com/360EntSecGroup-Skylar/excelize/v2" ) //go:embed default.json var defaultConf []byte func main() { buf := bytes.NewBuffer(defaultConf) conf := &loader.Conf{} err := conf.DecodeJSON(buf) //fmt.Println(err, conf) eBalance := ecalc.Ecalc{ CompanyFacts: ecalc.CompanyFacts{}, } xFile, err := excelize.OpenFile("../../test/gwb-rechner_5_0_4_vollbilanz.xlsx") fmt.Println("openFile err :", err) //sheets := make(map[int]) for _, v := range conf.Values { cellValue, err := xFile.GetCellValue( xFile.GetSheetName(v.Sheet), v.Cell, ) if err != nil { log.Println("error", err) } var inValue interface{} switch v.Struct { case "CompanyFacts": switch v.Type { case "int": inValue, err = strconv.Atoi(cellValue) if err != nil { fmt.Println(xFile.GetSheetName(v.Sheet)) fmt.Println("err ATOI", err) } default: inValue = cellValue } set.Field(&eBalance.CompanyFacts, v.Field, inValue) } } fmt.Printf("%#v", eBalance) }