瀏覽代碼

添加另一种模式的字符替换

tangs 6 年之前
父節點
當前提交
a0b03afaee
共有 2 個文件被更改,包括 61 次插入6 次删除
  1. 61 6
      main.go
  2. 二進制
      result2.xlsx

+ 61 - 6
main.go

@@ -1,14 +1,20 @@
 package main
 
 import (
+	"encoding/json"
 	"fmt"
 	"github.com/tealeg/xlsx"
 	"strings"
 )
 
-var origin_file = "C:\\Users\\tangs\\Desktop\\表1_教师招聘_国考合并_替换代码\\表2_招聘3-20180204145207_接受替换.xlsx"
-var reference_file = "C:\\Users\\tangs\\Desktop\\表1_教师招聘_国考合并_替换代码\\表1_教师招聘_国考合并_替换代码.xlsx"
-var result_file = "./result.xlsx"
+//
+var origin_file = "C:\\Users\\tangs\\Desktop\\表1_教师招聘_国考合并_替换代码2\\表2_国考_20190322192526接受替换.xlsx"
+var reference_file = "C:\\Users\\tangs\\Desktop\\表1_教师招聘_国考合并_替换代码2\\表1_国考_代号转换表.xlsx"
+var result_file = "./result2.xlsx"
+
+//var origin_file = "C:\\Users\\tangs\\Desktop\\表1_教师招聘_国考合并_替换代码\\表2_招聘3-20180204145207_接受替换.xlsx"
+//var reference_file = "C:\\Users\\tangs\\Desktop\\表1_教师招聘_国考合并_替换代码\\表1_教师招聘_国考合并_替换代码.xlsx"
+//var result_file = "./result.xlsx"
 
 func compose_reference_file(reference_file string) map[string]map[string]string {
 	r_f, err := xlsx.OpenFile(reference_file)
@@ -49,10 +55,42 @@ func compose_reference_file(reference_file string) map[string]map[string]string
 	return result
 }
 
+func compose_reference_file2(reference_file string) map[string]string {
+	o_f, err := xlsx.OpenFile(reference_file)
+	if err != nil {
+		panic(err)
+	}
+	sheet := o_f.Sheets[0]
+	var result = map[string]string{}
+	for row_index, row := range sheet.Rows {
+		if row_index == 0 {
+			continue
+		}
+		var key = ""
+		//fmt.Println("first", row.Cells[0].Value, row.Cells[1].Value)
+		for cell_index, cell := range row.Cells {
+			value := strings.TrimSpace(cell.Value)
+			if cell_index == 0 {
+				fmt.Println("key ---- " + value)
+				key = value
+				continue
+			}
+			if cell_index == 1 {
+				fmt.Println("keeeey --- " + key + " --- " + value)
+				result[key] = value
+			}
+		}
+	}
+	return result
+}
+
 func swap(origin_file, reference_file string) {
 
 	//
-	reference := compose_reference_file(reference_file)
+	//reference := compose_reference_file(reference_file)
+	reference := compose_reference_file2(reference_file)
+	bys, _ := json.Marshal(reference)
+	fmt.Println(string(bys))
 
 	o_f, err := xlsx.OpenFile(origin_file)
 	if err != nil {
@@ -72,8 +110,11 @@ func swap(origin_file, reference_file string) {
 			value := strings.TrimSpace(cell.Value)
 			value = strings.Replace(value, "—", "-", -1)
 			value = strings.Replace(value, ",", ",", -1)
-			new_value := real_swap(value, reference, true)
-			new_value = real_swap(new_value, reference, false)
+			new_value := value
+			//new_value = real_swap(value, reference, true)
+			//new_value = real_swap(new_value, reference, false)
+			new_value = real_swap2(value, reference)
+			fmt.Println(new_value)
 			cell.Value = new_value
 		}
 	}
@@ -84,6 +125,20 @@ func swap(origin_file, reference_file string) {
 	}
 }
 
+func real_swap2(value string, reference map[string]string) string {
+	multi := strings.Split(value, ",")
+	temp_value := ""
+	for _, single_value := range multi {
+		ref, ok := reference[single_value]
+		if !ok {
+			temp_value = temp_value + single_value + ","
+			continue
+		}
+		temp_value = temp_value + ref + ","
+	}
+	return strings.TrimSuffix(temp_value, ",")
+}
+
 func real_swap(value string, reference map[string]map[string]string, is_log bool) string {
 	multi := strings.Split(value, ",")
 	swap_value := value

二進制
result2.xlsx