package main import ( "fmt" "github.com/tealeg/xlsx" "mongodb" "qfw/util" "sort" ) var ( Sysconfig map[string]interface{} Mgo *mongodb.MongodbSim Dbname, DbColl string Fields map[string]interface{} FieldsArr []string JYHref = "https://www.jianyu360.cn/article/content/" ) func init() { util.ReadConfig(&Sysconfig) Mgo = &mongodb.MongodbSim{ MongodbAddr: Sysconfig["mongodb"].(string), Size: util.IntAllDef(Sysconfig["dbsize"], 5), DbName: Sysconfig["dbname"].(string), } Mgo.InitPool() Dbname = Sysconfig["dbname"].(string) DbColl = Sysconfig["dbcoll"].(string) Fields = Sysconfig["fields"].(map[string]interface{}) for k := range Fields { FieldsArr = append(FieldsArr, k) } sort.Strings(FieldsArr) } func main() { sess := Mgo.GetMgoConn() defer Mgo.DestoryMongoConn(sess) file := xlsx.NewFile() sheet, err := file.AddSheet("sheet1") if err != nil { panic(err) } row := sheet.AddRow() for _, v := range FieldsArr { row.AddCell().SetValue(Fields[v]) } //q := map[string]interface{}{"_id": mongodb.StringTOBsonId("594fef0e61a0721f156e9bc3")} query := sess.DB(Dbname).C(DbColl).Find(nil).Select(nil).Iter() count := 0 for tmp := make(map[string]interface{}); query.Next(&tmp); count++ { if count%500 == 0 { util.Debug("current ---", count) } row := sheet.AddRow() for _, v := range FieldsArr { if v == "jyhref1" { if util.ObjToString(tmp["bidstatus"]) == "中标" || util.ObjToString(tmp["bidstatus"]) == "成交" || util.ObjToString(tmp["bidstatus"]) == "合同" { list := util.ObjArrToStringArr(tmp["ids"].([]interface{})) id := list[len(list)-1] row.AddCell().SetValue(fmt.Sprintf(JYHref+"%s.html", util.CommonEncodeArticle("content", id))) } else { row.AddCell().SetValue("") } } else if v == "jyhref2" { if util.ObjToString(tmp["bidtype"]) == "招标" { list := util.ObjArrToStringArr(tmp["ids"].([]interface{})) id := list[0] row.AddCell().SetValue(fmt.Sprintf(JYHref+"%s.html", util.CommonEncodeArticle("content", id))) } else { row.AddCell().SetValue("") } } else { row.AddCell().SetValue(tmp[v]) } } } util.Debug("over ---", count) fname := fmt.Sprintf("./项目导出%s.xlsx", util.NowFormat(util.DATEFORMAT)) err = file.Save(fname) if err != nil { panic(err) } }