value test works
This commit is contained in:
198
cmd/conv/default.json
Normal file
198
cmd/conv/default.json
Normal file
@@ -0,0 +1,198 @@
|
||||
{
|
||||
"title": "Good Balance Calculator",
|
||||
"version": "5.04",
|
||||
"values": [
|
||||
{
|
||||
"sheet": 2,
|
||||
"cell": "C7",
|
||||
"type": "int",
|
||||
"struct": "CompanyFacts",
|
||||
"field": "TotalPurchaseFromSuppliers",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"sheet": 2,
|
||||
"cell": "C27",
|
||||
"type": "int",
|
||||
"struct": "CompanyFacts",
|
||||
"field": "TotalStaffCosts",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"sheet": 2,
|
||||
"cell": "C18",
|
||||
"type": "int",
|
||||
"struct": "CompanyFacts",
|
||||
"field": "Profit",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"sheet": 2,
|
||||
"cell": "C19",
|
||||
"type": "int",
|
||||
"struct": "CompanyFacts",
|
||||
"field": "FinancialCosts",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"sheet": 2,
|
||||
"cell": "C20",
|
||||
"type": "int",
|
||||
"struct": "CompanyFacts",
|
||||
"field": "IncomeFromFinancialInvestments",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"sheet": 2,
|
||||
"cell": "C22",
|
||||
"type": "int",
|
||||
"struct": "CompanyFacts",
|
||||
"field": "AdditionsToFixedAssets",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"sheet": 2,
|
||||
"cell": "C37",
|
||||
"type": "int",
|
||||
"struct": "CompanyFacts",
|
||||
"field": "Turnover",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"sheet": 2,
|
||||
"cell": "C21",
|
||||
"type": "int",
|
||||
"struct": "CompanyFacts",
|
||||
"field": "TotalAssets",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"sheet": 2,
|
||||
"cell": "C23",
|
||||
"type": "int",
|
||||
"struct": "CompanyFacts",
|
||||
"field": "FinancialAssetsAndCashBalance",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"sheet": 2,
|
||||
"cell": "C26",
|
||||
"type": "int",
|
||||
"struct": "CompanyFacts",
|
||||
"field": "NumberOfEmployees",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"sheet": 2,
|
||||
"cell": "C24",
|
||||
"type": "bool",
|
||||
"struct": "CompanyFacts",
|
||||
"field": "HasCanteen",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"sheet": 2,
|
||||
"cell": "C38",
|
||||
"type": "bool",
|
||||
"struct": "CompanyFacts",
|
||||
"field": "IsB2B",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"sheet": 2,
|
||||
"cell": "C33",
|
||||
"type": "int",
|
||||
"struct": "CompanyFacts",
|
||||
"field": "AverageJourneyToWorkForStaffInKm",
|
||||
"default": ""
|
||||
}
|
||||
],
|
||||
"areas": [
|
||||
{
|
||||
"sheet": 2,
|
||||
"start_row": 10,
|
||||
"end_row": 14,
|
||||
"struct": "SupplyFraction",
|
||||
"cols": [
|
||||
{
|
||||
"col": "B",
|
||||
"field": "IndustryCode",
|
||||
"type": "string",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"col": "D",
|
||||
"field": "CountryCode",
|
||||
"type": "string",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"col": "E",
|
||||
"field": "Costs",
|
||||
"type": "string",
|
||||
"default": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sheet": 2,
|
||||
"start_row": 30,
|
||||
"end_row": 32,
|
||||
"struct": "EmployeesFraction",
|
||||
"cols": [
|
||||
{
|
||||
"col": "B",
|
||||
"field": "CountryCode",
|
||||
"type": "string",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"col": "D",
|
||||
"field": "Percentage",
|
||||
"type": "float32",
|
||||
"default": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sheet": 2,
|
||||
"start_row": 41,
|
||||
"end_row": 43,
|
||||
"struct": "IndustrySector",
|
||||
"cols": [
|
||||
{
|
||||
"col": "B",
|
||||
"field": "IndustryCode",
|
||||
"type": "string",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"col": "C",
|
||||
"field": "Description",
|
||||
"type": "string",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"col": "D",
|
||||
"field": "AmountOfTotalTurnover",
|
||||
"type": "int",
|
||||
"default": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"rating": {
|
||||
"sheet": 3,
|
||||
"start_row": 9,
|
||||
"end_row": 93,
|
||||
"points_col": "I",
|
||||
"max_points_col": "J",
|
||||
"id_col": "",
|
||||
"short_name_col": "B",
|
||||
"name_col": "C",
|
||||
"estimations_col": "H",
|
||||
"weight_col": "D",
|
||||
"selected_by_user_col": "N"
|
||||
}
|
||||
}
|
||||
|
||||
56
cmd/conv/main.go
Normal file
56
cmd/conv/main.go
Normal file
@@ -0,0 +1,56 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user