You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

tech.go 1.2 kB

2 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package tech
  2. import (
  3. "net/http"
  4. "strconv"
  5. "github.com/lunny/log"
  6. "code.gitea.io/gitea/models"
  7. "code.gitea.io/gitea/modules/context"
  8. "github.com/360EntSecGroup-Skylar/excelize/v2"
  9. )
  10. func ImportBasicInfo(ctx *context.APIContext) {
  11. file, _, err := ctx.GetFile("file")
  12. if err != nil {
  13. ctx.JSON(http.StatusBadRequest, models.BaseErrorMessageApi(ctx.Tr("model_app.get_file_fail")))
  14. return
  15. }
  16. defer file.Close()
  17. f, err := excelize.OpenReader(file)
  18. if err != nil {
  19. ctx.JSON(http.StatusBadRequest, models.BaseErrorMessageApi(ctx.Tr("model_app.get_file_fail")))
  20. return
  21. }
  22. rows, err := f.GetRows(f.GetSheetName(1))
  23. if err != nil {
  24. ctx.JSON(http.StatusBadRequest, models.BaseErrorMessageApi(ctx.Tr("model_app.get_file_fail")))
  25. return
  26. }
  27. for i, row := range rows {
  28. if i != 0 {
  29. baseInfo := &models.TechConvergeBaseInfo{}
  30. baseInfo.ProjectNumber = row[2]
  31. baseInfo.ApplyYear, err = strconv.Atoi(row[1])
  32. log.Warn("base info apply year parse err ", i)
  33. baseInfo.ProjectName = row[3]
  34. baseInfo.Type = row[16]
  35. baseInfo.Owner = row[8]
  36. baseInfo.Email = row[10]
  37. baseInfo.Phone = row[9]
  38. baseInfo.Recommend = row[7]
  39. baseInfo.Institution = row[4]
  40. }
  41. }
  42. }