1 # 导入openpyxl和configparser模块
2 import openpyxl
3 from configparser import ConfigParser
4 import os
5
6 wb = openpyxl.load_workbook("SW知能化-Utility.xlsx") # 打开excel文件,获取工作簿对象
7
8 ws = wb["Utility機種対応"] # 获取指定的表单(sheet)对象
9
10 language_code = ['CHS', 'CHT', 'DEU', 'ENU', 'ESP', 'FRA', 'ITA', 'JPN', 'KOR', 'PTB']
11 language_coding = {'CAT': 'windows-1252', 'CHS': 'ISO-8859-1', 'CHT': 'ISO-8859-1', 'CSY': 'Windows-1250', 'DAN': 'Windows-1252',
12 'DEU': 'Windows-1252', 'ELL': 'Windows-1253', 'ENU': 'Windows-1252', 'ESP': 'Windows-1252',
13 'FIN': 'Windows-1252', 'FRA': 'Windows-1252', 'HUN': 'Windows-1250', 'ITA': 'Windows-1252',
14 'JPN': 'shift_jis', 'KOR': 'ks_c_5601-1987', 'NLD': 'Windows-1252', 'NOR': 'Windows-1252',
15 'PLK': 'Windows-1250', 'PTB': 'Windows-1252', 'PTG': 'Windows-1252', 'RUS': 'Windows-1251',
16 'SVE': 'Windows-1252', 'TRK': 'Windows-1254'}
17
18 path = ws['F4'].value # 获取F列单元格内容(目标配置文件路径)
19 path_list_dic = {}
20 path_list = []
21
22 if '...' in path:
23 path = path.replace('...\\', 'E:\Projects\\work_1016-1031\CCU_ALL\\')
24
25 for lan in language_code:
26 path_list_dic[lan] = path.replace('ENU', lan)
27 path_list.append(path.replace('ENU', lan))
28
29 if lan == 'JPN':
30 J8 = ws['J8'].value.replace(ws['J8'].value[-5], 'j')
31 J9 = ws['J9'].value.replace(ws['J9'].value[-5], 'j')
32 J10 = ws['J10'].value.replace(ws['J10'].value[-5], 'j')
33 elif lan == 'PTB':
34 J8 = ws['J8'].value.replace(ws['J8'].value[-5], 'por')
35 J9 = ws['J9'].value.replace(ws['J9'].value[-5], 'por')
36 J10 = ws['J10'].value.replace(ws['J10'].value[-5], 'por')
37 else:
38 J8 = ws['J8'].value.replace(ws['J8'].value[-5], lan.lower())
39 J9 = ws['J9'].value.replace(ws['J9'].value[-5], lan.lower())
40 J10 = ws['J10'].value.replace(ws['J10'].value[-5], lan.lower())
41 # print(path_list_dic)
42 # print(path_list)
43
44
45 def add():
46 for new_path in path_list_dic:
47 # print(new_path)
48 # print(path_list_dic[new_path])
49 # print(language_coding[new_path])
50 with open(path_list_dic[new_path], 'r', encoding=language_coding[new_path]) as f1:
51 new_section = ws['H4'].value # 获取H列单元格内容"section"
52 lst = f1.readlines() # 读取每行信息
53 #
54 n = lst.index('[StringSet1]\n') # 获取"[StringSet1]"的索引
55 lst.insert(n, new_section + '\n') # 将新section按照索引值插入列表中
56 for i in range(4, 11):
57 n = n + 1
58 item = ws['I' + str(i)].value # 获取item值
59 value = str(ws['J' + str(i)].value) # 获取value值
60 # if i == 7:
61 # value = value + "\n"
62 if i == 8:
63 value = J8
64 elif i == 9:
65 value = J9
66 elif i == 10:
67 value = J10 + "\n"
68 lst.insert(n, item + " = " + value + '\n') # 将item值与value值按照索引插入列表中
69 # print(lst)
70 with open(path_list_dic[new_path], 'w', encoding=language_coding[new_path]) as f2:
71 f2.writelines(lst)
72
73
74 # 获取G列单元格内容,并根据不同值,进行不同函数操作
75 change_type_value = ws['G4'].value
76
77 if change_type_value == 'Add':
78 # cfg.write(open(path, 'a'))
79 add()
80 # elif change_type_value == 'Edit':
81 # pass
82 # elif change_type_value == 'Delete':
83 # pass
84 # else:
85 # pass