package main import ( "fmt" "github.com/xuri/excelize/v2" util "jygit.jydev.jianyu360.cn/data_processing/common_utils" "jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb" "log" "regexp" ) // getProject 根据表格biddingID获取项目ID func getProject() { MgoP := &mongodb.MongodbSim{ //MongodbAddr: "172.17.189.140:27080", MongodbAddr: "127.0.0.1:27080", Size: 10, DbName: "qfw", Direct: true, //UserName: "SJZY_RWbid_ES", //Password: "SJZY@B4i4D5e6S", } MgoP.InitPool() //Mgo := &mongodb.MongodbSim{ // //MongodbAddr: "172.17.189.140:27080", // MongodbAddr: "127.0.0.1:27083", // Size: 10, // DbName: "qfw", // UserName: "SJZY_RWbid_ES", // Password: "SJZY@B4i4D5e6S", // Direct: true, //} //Mgo.InitPool() f, err := excelize.OpenFile("./bidding2.xlsx") if err != nil { fmt.Println(err) return } defer func() { if err := f.Close(); err != nil { fmt.Println(err) } }() rows, err := f.GetRows("Sheet1") if err != nil { fmt.Println(err) return } for i := 1; i < len(rows); i++ { biddingID := rows[i][0] where := map[string]interface{}{ "ids": biddingID, } p, _ := MgoP.FindOne("projectset_20230904", where) projectId := mongodb.BsonIdToSId((*p)["_id"]) f.SetCellValue("Sheet1", fmt.Sprintf("B%v", i+1), projectId) //bidding, _ := Mgo.FindById("bidding", biddingID, nil) //href := (*bidding)["href"] //f.SetCellValue("Sheet1", fmt.Sprintf("E%v", i+1), href) f.SetCellValue("Sheet1", fmt.Sprintf("F%v", i+1), GetJyURLByID(biddingID)) } f.Save() log.Println("over") } // dealProject func dealProject() { MgoP := &mongodb.MongodbSim{ //MongodbAddr: "172.17.189.140:27080", MongodbAddr: "127.0.0.1:27080", Size: 10, DbName: "qfw", Direct: true, //UserName: "SJZY_RWbid_ES", //Password: "SJZY@B4i4D5e6S", } MgoP.InitPool() f, err := excelize.OpenFile("./bidding2.xlsx") if err != nil { fmt.Println(err) return } defer func() { if err := f.Close(); err != nil { fmt.Println(err) } }() rows, err := f.GetRows("Sheet2") if err != nil { fmt.Println(err) return } // 编译正则表达式 re := regexp.MustCompile(`包\d+`) for i := 1; i < len(rows); i++ { pid := rows[i][0] p, _ := MgoP.FindById("projectset_20230904", pid, nil) f.SetCellValue("Sheet2", fmt.Sprintf("B%v", i+1), (*p)["projectname"]) f.SetCellValue("Sheet2", fmt.Sprintf("C%v", i+1), (*p)["multipackage"]) f.SetCellValue("Sheet2", fmt.Sprintf("D%v", i+1), (*p)["sourceinfourl"]) if util.IntAll((*p)["multipackage"]) == 0 { if list, ok := (*p)["list"].([]interface{}); ok { for _, v := range list { if da, ok := v.(map[string]interface{}); ok { title := da["title"] // 使用正则表达式进行匹配 matches := re.FindAllString(util.ObjToString(title), -1) if len(matches) > 0 { for _, match := range matches { fmt.Println(match[0]) // 输出匹配到的关键词 f.SetCellValue("Sheet2", fmt.Sprintf("F%v", i+1), match[0]) f.SetCellValue("Sheet2", fmt.Sprintf("E%v", i+1), title) break } } } } } } } f.Save() log.Println("over") }