Files
excelConverter/cmd/excel_converter/main.go
2021-03-01 12:18:55 +01:00

56 lines
1.2 KiB
Go

package main
import (
"flag"
"fmt"
"log"
"os"
"path/filepath"
"strings"
"git.ecogood.org/andreas.schroepfer/excelConverter/pkg/loader"
)
func main() {
inFile, outFile := parseArgs()
xf, err := os.Open(inFile)
if err != nil {
log.Fatal("cannot open file:", err)
}
defer xf.Close()
eBalance, err := loader.XLSX(xf, nil)
if err != nil {
fmt.Println("errors when loading from excel:")
fmt.Println(err)
}
out, err := os.OpenFile(outFile, os.O_CREATE, 0666)
fmt.Println("createFileErr:", err)
eBalance.EncodeJSON(out)
out.Close()
}
func parseArgs() (inFile, outFile string) {
flag.Parse()
args := flag.Args()
switch len(args) {
case 0:
fmt.Println("you need to provide an input-file")
fmt.Println("the output is optional")
fmt.Println("exel_converter [input] [[output]]")
os.Exit(1)
case 1:
inFile, outFile = args[0], fmt.Sprintf("%s.json", args[0])
case 2:
inFile, outFile = args[0], args[1]
default:
fmt.Println("warning: just the first 2 arguments are used!")
fmt.Println("exel_converter [input] [[output]]")
}
if !strings.EqualFold(".xlsx", filepath.Ext(inFile)) {
fmt.Println("input needs to be an xlsx-file!")
os.Exit(2)
}
return inFile, outFile
}