package main import ( "encoding/csv" "fmt" "math/rand" "os" "strconv" "time" ) type person struct { JOB_NUMBER string NAME string DEP_CODE string DEP_NAME string EMAIL string IC_NUMBER string EXTENSION string } func CreateCaptcha() string { return fmt.Sprintf("%02v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(100)) } func main() { f, err := os.Create("test.xls") if err != nil { panic(err) } defer f.Close() dep_code := []string{"A1000", "A1100", "A1110", "A1120", "A2000", "A2100", "A2110"} dep_name := []string{"人事", "财务", "总务", "劳安", "研发", "业务", "制造"} f.WriteString("\xEF\xBB\xBF") // 写入UTF-8 BOM w := csv.NewWriter(f) w.Write([]string{"JOB_NUMBER", "NAME", "DEP_CODE", "DEP_NAME", "EMAIL", "IC_NUMBER", "EXTENSION"}) for i := 1; i < 10000; i++ { var p person p.JOB_NUMBER = "1000" + strconv.Itoa(i) p.NAME = "test_" + strconv.Itoa(i) rand.Seed(time.Now().UnixNano()) var dep_num int if i%3 == 0 { dep_num = 4 } else { dep_num = rand.Intn(7) } p.DEP_CODE = dep_code[dep_num] p.DEP_NAME = dep_name[dep_num] p.EMAIL = p.NAME + "@test.com" p.IC_NUMBER = strconv.Itoa(i) + CreateCaptcha() p.EXTENSION = strconv.Itoa(i) + CreateCaptcha() w.Write([]string{p.JOB_NUMBER, p.NAME, p.DEP_CODE, p.DEP_NAME, p.EMAIL, p.IC_NUMBER, p.EXTENSION}) w.Flush() } }