func main() { var seq <-chan string if *filename != "" { // file mode c, err := reader.OpenXLSXSheet(*filename, 0) if err != nil { panic(err) return } if *max == 0 { *max = c.Len() // last row } fmter := func(n int) (str string, err error) { strs, err := reader.ReadMulti(c, 0, 1)(n) if err != nil { return } str = strings.Join(strs, ", ") return } seq = formatNum(fmter, uniqueInt(randInts(*min-1, *max-1))) } else { // raw number mode l := len(fmt.Sprintf("%d", *max)) seq = formatNum(padNumToStr(l), uniqueInt(randInts(*min, *max))) } url := "https://github.com/yookoala/lottery" fmt.Printf("\nSource code: %s\n\n", url) fmt.Printf("Max: %d\n", *max) fmt.Printf("Min: %d\n", *min) fmt.Printf("=================\n\n") reader := bufio.NewReader(os.Stdin) for n := range seq { t := time.Now().Format("15:04:05.999") t += strings.Repeat("0", 12-len(t)) fmt.Printf("[%s] %s", t, n) reader.ReadString('\n') } }
func TestXLSXReadMulti(t *testing.T) { f, err := reader.OpenXLSXSheet("./_test/test.xlsx", 0) if err != nil { t.Errorf("unable to open xlsx file: %#v", err.Error()) } for i := 0; i < f.Len(); i++ { strs, err := reader.ReadMulti(f, 0, 1)(i) if err != nil { t.Errorf("unable to ReadMulti on line %d: %#v", i, err.Error()) } res := strings.Join(strs, ", ") exp := testXLSXdata[i][0] + ", " + testXLSXdata[i][1] if res != exp { t.Errorf("row %d exptects %#v, got %#v", exp, res) } t.Logf("%#v", res) } }