package services import ( "go-account-register/models" "log" "github.com/xuri/excelize/v2" ) // 导出 Twitter 账号数据到 Excel func ExportTwitterAccounts() ([]string, error) { accountService := InitTwitterAccountService() accounts := accountService.GetAll(&models.TwitterAccount{ Type: "get", }) // 分类 countryMap := map[string][]models.TwitterAccount{ "United States": {}, "Singapore": {}, "Japan": {}, "Taiwan": {}, "Other": {}, } for _, acc := range accounts { addr := acc.RegisterAddress if addr == "United States" || addr == "Singapore" || addr == "Japan" || addr == "Taiwan" { countryMap[addr] = append(countryMap[addr], acc) } else { countryMap["Other"] = append(countryMap["Other"], acc) } } var files []string for k, v := range countryMap { if len(v) == 0 { continue } file := excelize.NewFile() titles := []string{"编号", "用户id", "用户名", "邮箱", "密码", "邮箱密码", "生日", "Token", "二步验证码", "Cookies", "类型", "状态", "登录状态", "代理", "浏览器ID", "浏览器地址", "注册时间", "注册地区", "注册IP", "更新时间", "创建时间"} for i, t := range titles { cell, _ := excelize.CoordinatesToCellName(i+1, 1) file.SetCellValue("Sheet1", cell, t) } for row, acc := range v { vals := []interface{}{ acc.ID, acc.Uid, acc.Name, acc.Email, acc.Password, acc.EmailPassword, acc.Birthday, acc.Token, acc.Fa2, acc.Cookies, acc.Type, acc.Status, acc.LoginStatus, acc.Proxy, acc.BrowserId, acc.BrowserUrl, acc.RegisterDate, acc.RegisterAddress, acc.RegisterIp, acc.UpdateTime, acc.CreateTime, } for col, val := range vals { cell, _ := excelize.CoordinatesToCellName(col+1, row+2) file.SetCellValue("Sheet1", cell, val) } } filename := "twitter_accounts_" + k + ".xlsx" if err := file.SaveAs(filename); err != nil { log.Println("保存文件失败:", filename, err) } else { files = append(files, filename) log.Println("已导出:", filename) } } return files, nil }