feat: add filename to exported exceltable

This commit is contained in:
Patryk Hegenberg 2025-01-03 17:14:19 +01:00
parent a6e2986143
commit b1d345b152
4 changed files with 11 additions and 8 deletions

2
app.go
View file

@ -166,7 +166,7 @@ func (a *App) makeChoice() {
case "start rdp connection": case "start rdp connection":
a.startRDPConnection() a.startRDPConnection()
case "export": case "export":
tw.ExportSummary() tw.ExportSummary(a.flags.ExportName)
} }
} }

3
cmd.go
View file

@ -55,7 +55,7 @@ func (a *App) showCommand() *cobra.Command {
Run: func(cmd *cobra.Command, args []string) { Run: func(cmd *cobra.Command, args []string) {
tw := NewTimeWarrior() tw := NewTimeWarrior()
if a.flags.ShowExport { if a.flags.ShowExport {
tw.ExportSummary() tw.ExportSummary(a.flags.ExportName)
} }
if a.flags.ShowWeek { if a.flags.ShowWeek {
tw.ShowSummary(":week") tw.ShowSummary(":week")
@ -70,6 +70,7 @@ func (a *App) showCommand() *cobra.Command {
cmd.Flags().BoolVarP(&a.flags.ShowWeek, "week", "w", false, "show timewarrior week summary") cmd.Flags().BoolVarP(&a.flags.ShowWeek, "week", "w", false, "show timewarrior week summary")
cmd.Flags().BoolVarP(&a.flags.ShowMonth, "month", "m", false, "show timewarrior month summary") cmd.Flags().BoolVarP(&a.flags.ShowMonth, "month", "m", false, "show timewarrior month summary")
cmd.Flags().BoolVarP(&a.flags.ShowExport, "export", "e", false, "export timewarrior timetable") cmd.Flags().BoolVarP(&a.flags.ShowExport, "export", "e", false, "export timewarrior timetable")
cmd.Flags().StringVarP(&a.flags.ExportName, "name", "n", "Arbeitszeiten.xlsx", "name of exported excel table")
return cmd return cmd
} }

View file

@ -26,6 +26,7 @@ type Flags struct {
ShowWeek bool ShowWeek bool
ShowMonth bool ShowMonth bool
ShowExport bool ShowExport bool
ExportName string
} }
func loadConfig() (Config, error) { func loadConfig() (Config, error) {

View file

@ -56,7 +56,7 @@ type TimeEntry struct {
Tag string Tag string
} }
func (t *TimeWarrior) ExportSummary() error { func (t *TimeWarrior) ExportSummary(name string) error {
fmt.Println("Export Timetable") fmt.Println("Export Timetable")
exportCommand := exec.Command("timew", "summary", ":year") exportCommand := exec.Command("timew", "summary", ":year")
output, err := exportCommand.Output() output, err := exportCommand.Output()
@ -122,7 +122,7 @@ func (t *TimeWarrior) ExportSummary() error {
case "break": case "break":
duration, _ := parseDuration(entry.Duration) duration, _ := parseDuration(entry.Duration)
summary.BreakDuration += duration summary.BreakDuration += duration
case "uni", "free", "krank", "urlaub": case "uni", "free", "krank", "urlaub", "feiertag":
summary.Tag = entry.Tag summary.Tag = entry.Tag
} }
} }
@ -144,7 +144,7 @@ func (t *TimeWarrior) ExportSummary() error {
fmt.Printf("%+v\n", entry) fmt.Printf("%+v\n", entry)
} }
err = writeExcelSheet(excelEntries) err = writeExcelSheet(excelEntries, name)
if err != nil { if err != nil {
return err return err
} }
@ -210,7 +210,7 @@ func formatDuration(d time.Duration) string {
return fmt.Sprintf("%d:%02d:%02d", h, m, s) return fmt.Sprintf("%d:%02d:%02d", h, m, s)
} }
func writeExcelSheet(entries []ExcelEntry) error { func writeExcelSheet(entries []ExcelEntry, name string) error {
sort.Slice(entries, func(i, j int) bool { sort.Slice(entries, func(i, j int) bool {
dateI, _ := time.Parse("2006-01-02", entries[i].Date) dateI, _ := time.Parse("2006-01-02", entries[i].Date)
dateJ, _ := time.Parse("2006-01-02", entries[j].Date) dateJ, _ := time.Parse("2006-01-02", entries[j].Date)
@ -230,7 +230,6 @@ func writeExcelSheet(entries []ExcelEntry) error {
return err return err
} }
// Überschriften setzen
f.SetCellValue(sheetName, "B1", "Arbeitszeiten "+sheetName) f.SetCellValue(sheetName, "B1", "Arbeitszeiten "+sheetName)
f.SetCellValue(sheetName, "B3", "Datum") f.SetCellValue(sheetName, "B3", "Datum")
f.SetCellValue(sheetName, "D3", "Arbeitszeit") f.SetCellValue(sheetName, "D3", "Arbeitszeit")
@ -303,6 +302,8 @@ func writeExcelSheet(entries []ExcelEntry) error {
text = "Hochschule" text = "Hochschule"
case "urlaub": case "urlaub":
text = "Urlaub" text = "Urlaub"
case "feiertag":
text = "Feiertag"
default: default:
text = "" text = ""
} }
@ -313,7 +314,7 @@ func writeExcelSheet(entries []ExcelEntry) error {
} }
f.SetActiveSheet(index) f.SetActiveSheet(index)
if err := f.SaveAs("Test.xlsx"); err != nil { if err := f.SaveAs(name); err != nil {
fmt.Println(err) fmt.Println(err)
} }
return nil return nil