Procházet zdrojové kódy

fix in port arg and xlsx

Dasflugen před 5 roky
rodič
revize
52d0904b8f
1 změnil soubory, kde provedl 100 přidání a 100 odebrání
  1. 100 100
      schedule/xlsx.go

+ 100 - 100
schedule/xlsx.go

@@ -2,117 +2,117 @@ package schedule
 
 import (
     // "fmt"
-    // "strings"
+    "strings"
     "strconv"
     "github.com/tealeg/xlsx"
 )
 
-func ImportXLSX(filename string) /*[]*PlanXLSX*/ {
-    // var (
-    //     listOfPlans []*PlanXLSX
-    // )
-    // xlFile, err := xlsx.OpenFile(filename)
-    // if err != nil {
-    //     return nil
-    // }
-    // for _, sheet := range xlFile.Sheets {
-    //     var plan = new(PlanXLSX)
-    //     plan.ProgramCode   = sheet.Rows[5].Cells[1].String()
-    //     plan.NameCode      = strings.Split(sheet.Rows[5].Cells[6].String(), " ")[0]
-    //     plan.PeriodOfStudy = sheet.Rows[7].Cells[6].String()
-    //     splited := strings.Split(sheet.Rows[9].Cells[1].String(), " ")
-    //     plan.GroupNumber   = strings.Split(splited[len(splited)-1], "-")[0]
+func ImportXLSX(filename string) []*PlanXLSX {
+    var (
+        listOfPlans []*PlanXLSX
+    )
+    xlFile, err := xlsx.OpenFile(filename)
+    if err != nil {
+        return nil
+    }
+    for _, sheet := range xlFile.Sheets {
+        var plan = new(PlanXLSX)
+        plan.ProgramCode   = sheet.Rows[5].Cells[1].String()
+        plan.NameCode      = strings.Split(sheet.Rows[5].Cells[6].String(), " ")[0]
+        plan.PeriodOfStudy = sheet.Rows[7].Cells[6].String()
+        splited := strings.Split(sheet.Rows[9].Cells[1].String(), " ")
+        plan.GroupNumber   = strings.Split(splited[len(splited)-1], "-")[0]
 
-    //     for i, row := range sheet.Rows {
-    //         if i < 20 {
-    //             continue
-    //         }
-    //         if len(row.Cells) < 20 {
-    //             continue
-    //         }
-    //         if row.Cells[2].String() == "" || row.Cells[2].String() == "ИТОГО" {
-    //             continue
-    //         }
+        for i, row := range sheet.Rows {
+            if i < 20 {
+                continue
+            }
+            if len(row.Cells) < 20 {
+                continue
+            }
+            if row.Cells[2].String() == "" || row.Cells[2].String() == "ИТОГО" {
+                continue
+            }
 
-    //         if strings.HasPrefix(row.Cells[1].String(), "Консультации") || strings.HasPrefix(row.Cells[1].String(), "Государственная") {
-    //             continue
-    //         }
+            if strings.HasPrefix(row.Cells[1].String(), "Консультации") || strings.HasPrefix(row.Cells[1].String(), "Государственная") {
+                continue
+            }
 
-    //         splited := strings.Split(row.Cells[1].String(), ".")
-    //         if len(splited) != 2 {
-    //             continue
-    //         }
+            splited := strings.Split(row.Cells[1].String(), ".")
+            if len(splited) != 2 {
+                continue
+            }
 
-    //         typerow := TypeRow(IsSubTR)
-    //         switch {
-    //         case strings.Contains(row.Cells[2].String(), "цикл"):
-    //             typerow = IsCycleTR
-    //         case splited[1] == "00":
-    //             typerow = IsStartTR
-    //         case splited[0] == "ПМ":
-    //             typerow = IsPmTR
-    //         }
+            typerow := TypeRow(IsSubTR)
+            switch {
+            case strings.Contains(row.Cells[2].String(), "цикл"):
+                typerow = IsCycleTR
+            case splited[1] == "00":
+                typerow = IsStartTR
+            case splited[0] == "ПМ":
+                typerow = IsPmTR
+            }
 
-    //         max, _       := row.Cells[4].Int()
-    //         selfstudy, _ := row.Cells[5].Int()
-    //         allstudy, _  := row.Cells[6].Int()
-    //         lectures, _  := row.Cells[7].Int()
-    //         labs, _      := row.Cells[8].Int()
-    //         projects, _  := row.Cells[9].Int()
-    //         c1s1, _      := row.Cells[12].Int()
-    //         c1s2, _      := row.Cells[13].Int()
-    //         c2s1, _      := row.Cells[14].Int()
-    //         c2s2, _      := row.Cells[15].Int()
-    //         c3s1, _      := row.Cells[16].Int()
-    //         c3s2, _      := row.Cells[17].Int()
-    //         c4s1, _      := row.Cells[18].Int()
-    //         c4s2, _      := row.Cells[19].Int()
+            max, _       := row.Cells[4].Int()
+            selfstudy, _ := row.Cells[5].Int()
+            allstudy, _  := row.Cells[6].Int()
+            lectures, _  := row.Cells[7].Int()
+            labs, _      := row.Cells[8].Int()
+            projects, _  := row.Cells[9].Int()
+            c1s1, _      := row.Cells[12].Int()
+            c1s2, _      := row.Cells[13].Int()
+            c2s1, _      := row.Cells[14].Int()
+            c2s2, _      := row.Cells[15].Int()
+            c3s1, _      := row.Cells[16].Int()
+            c3s2, _      := row.Cells[17].Int()
+            c4s1, _      := row.Cells[18].Int()
+            c4s2, _      := row.Cells[19].Int()
 
-    //         certform := ""
-    //         splited = strings.Split(row.Cells[3].String(), ",")
-    //         for _, v := range splited {
-    //             if v != "-" {
-    //                 certform = v
-    //                 break
-    //             }
-    //         }
+            certform := ""
+            splited = strings.Split(row.Cells[3].String(), ",")
+            for _, v := range splited {
+                if v != "-" {
+                    certform = v
+                    break
+                }
+            }
 
-    //         plan.Lines = append(plan.Lines, LineXLSX{
-    //             ID:        row.Cells[1].String(),
-    //             Name:      row.Cells[2].String(),
-    //             CertForm:  certform,
-    //             StudyLoad: StudyLoadXLSX{
-    //                 Max:       max,
-    //                 SelfStudy: selfstudy,
-    //                 AllStudy:  allstudy,
-    //                 Lectures:  lectures,
-    //                 Labs:      labs,
-    //                 Projects:  projects,
-    //             },
-    //             Course: [4][2]int{
-    //                 [2]int{
-    //                     c1s1,
-    //                     c1s2,
-    //                 },
-    //                 [2]int{
-    //                     c2s1,
-    //                     c2s2,
-    //                 },
-    //                 [2]int{
-    //                     c3s1,
-    //                     c3s2,
-    //                 },
-    //                 [2]int{
-    //                     c4s1,
-    //                     c4s2,
-    //                 },
-    //             },
-    //             TypeRow: typerow,
-    //         })
-    //     }
-    //     listOfPlans = append(listOfPlans, plan)
-    // }
-    // return listOfPlans
+            plan.Lines = append(plan.Lines, LineXLSX{
+                ID:        row.Cells[1].String(),
+                Name:      row.Cells[2].String(),
+                CertForm:  certform,
+                StudyLoad: StudyLoadXLSX{
+                    Max:       max,
+                    SelfStudy: selfstudy,
+                    AllStudy:  allstudy,
+                    Lectures:  lectures,
+                    Labs:      labs,
+                    Projects:  projects,
+                },
+                Course: [4][2]int{
+                    [2]int{
+                        c1s1,
+                        c1s2,
+                    },
+                    [2]int{
+                        c2s1,
+                        c2s2,
+                    },
+                    [2]int{
+                        c3s1,
+                        c3s2,
+                    },
+                    [2]int{
+                        c4s1,
+                        c4s2,
+                    },
+                },
+                TypeRow: typerow,
+            })
+        }
+        listOfPlans = append(listOfPlans, plan)
+    }
+    return listOfPlans
 }
 
 func CreateXLSX(filename string) (*xlsx.File, string) {