From a12c66e6c61303bfee84c8429e8b5946bfd8f158 Mon Sep 17 00:00:00 2001 From: Matthew Lemon Date: Fri, 31 Jul 2020 16:57:47 +0100 Subject: starting writing the code for master writer --- pkg/datamaps/writer.go | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 pkg/datamaps/writer.go (limited to 'pkg/datamaps/writer.go') diff --git a/pkg/datamaps/writer.go b/pkg/datamaps/writer.go new file mode 100644 index 0000000..9a7015b --- /dev/null +++ b/pkg/datamaps/writer.go @@ -0,0 +1,40 @@ +package datamaps + +import ( + "log" + "path/filepath" + + "github.com/tealeg/xlsx/v3" +) + +func ExportMaster(opts *Options) error { + // A master represents a set of file data from the database. Actually, in terms of the database, + // it should represent a "return". + // + // The meat of the master is of the format: + // Key 1 | Key_1_Value_for_FD_1 | Key_1_Value_for_FD_2 | Key_1_Value_for_FD_3 | ... etc + // Key 2 | Key_2_Value_for_FD_1 | Key_2_Value_for_FD_2 | Key_2_Value_for_FD_3 | ... etc + // Key 3 | Key_3_Value_for_FD_1 | Key_3_Value_for_FD_2 | Key_3_Value_for_FD_3 | ... etc + // ... + // Could be represented as a slice or a map[string][]string + + // filename := filepath.Join(opts.MasterOutPutPath, "master.xlsx") + wb := xlsx.NewFile() + sh, err := wb.AddSheet("Master Data") + + testRow, err := sh.Row(1) + if err != nil { + log.Fatal(err) + } + if sl := testRow.WriteSlice([]string{"Hello", "Bollocks", "Knackers", "Bottyies"}, -1); sl == -1 { + log.Printf("not a slice type") + } + log.Printf("writing slice to row\n") + + log.Printf("saving master at %s", opts.MasterOutPutPath) + if err := wb.Save(filepath.Join(opts.MasterOutPutPath, "master.xlsx")); err != nil { + log.Fatalf("cannot save file to %s", opts.MasterOutPutPath) + } + sh.Close() + return nil +} -- cgit v1.2.3