57 lines
1.2 KiB
Go
57 lines
1.2 KiB
Go
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)
|
|
}
|