SkillAgentSearch skills...

Godumper

Dump array of interfaces to CSV/XSLX files.

Install / Use

/learn @ahmdrz/Godumper
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

godumper

Dump array of interfaces to CSV/XSLX files.

Build Status GoDoc

  • [x] Dump array of interfaces
  • [x] Dump slice of interfaces
  • [ ] Dump map of interfaces
  • [ ] ...

How to use ?

go get github.com/ahmdrz/godumper

First of all...

package main

import (
	"fmt"

	"github.com/ahmdrz/godumper"
)

type Message struct {
	Id       int `dump:"index"`
	UserFrom int
	UserTo   int
	Text     string
	Time     int64
	IsReaded bool
}

You can use dump:"index" for change header name

If you want to dump a slice

var slice = []Message{
	Message{
		Id:       810625,
		Time:     1475430311,
		Text:     "Hi dude, Are you okay ?",
		UserFrom: 812311,
		UserTo:   722311,
		IsReaded: true,
	},
	Message{
		Id:       187236,
		UserFrom: 722311,
		UserTo:   812311,
		Text:     "Hey buddy,I'm fine",
		Time:     1475430322,
		IsReaded: false,
	},
	Message{
		Id:       715623,
		UserFrom: 722311,
		UserTo:   812311,
		Text:     "😆😆😆 😛",
		Time:     1475430621,
		IsReaded: false,
	},
}

func main() {
	dumper, err := godumper.New(Message{}, godumper.CSV)
	if err != nil {
		panic(err)
	}
	
	err = dumper.Dump(slice)
	if err != nil {
		panic(err)
	}
	
	err = dumper.Save("result.csv")
	if err != nil {
		panic(err)
	}
	fmt.Println("The slice dumped to result.csv")
}

Or if you want to dump an array...

var array = [3]Message{
	Message{
		Id:       810625,
		Time:     1475430311,
		Text:     "Hi dude, Are you okay ?",
		UserFrom: 812311,
		UserTo:   722311,
		IsReaded: true,
	},
	Message{
		Id:       187236,
		UserFrom: 722311,
		UserTo:   812311,
		Text:     "Hey buddy,I'm fine",
		Time:     1475430322,
		IsReaded: false,
	},
	Message{
		Id:       715623,
		UserFrom: 722311,
		UserTo:   812311,
		Text:     "😆😆😆 😛",
		Time:     1475430621,
		IsReaded: false,
	},
}

func main() {
	dumper, err := godumper.New(Message{}, godumper.XSLX)
	if err != nil {
		panic(err)
	}
	
	err = dumper.Dump(array)
	if err != nil {
		panic(err)
	}
	
	err = dumper.Save("result.xslx")
	if err != nil {
		panic(err)
	}
	fmt.Println("The array dumped to result.xslx")
}

DumpAndSave

If you use Save function , another [][]string will created and memory used by not important datas.

So you can use DumpAndSave for save memory , see below :

func main() {
	dumper, err := godumper.New(Message{}, godumper.CSV)
	if err != nil {
		panic(err)
	}
	err = dumper.DumpAndSave(array, "result.csv")
	if err != nil {
		panic(err)
	}
	fmt.Println("The array dumped to result.csv")
}

License

Read the license file

Contribe

Just fork and make pull request. I will happy if you tell me bugs and help me to improve it.

View on GitHub
GitHub Stars8
CategoryDevelopment
Updated7y ago
Forks0

Languages

Go

Security Score

70/100

Audited on Apr 25, 2018

No findings