1 import openpyxl
2 import sys
3
4 wb_temp = openpyxl.load_workbook("E:\Projects\work_11_25\\Utility機種対応知能化\\Utility機種対応仕様.xlsx")
5 wb_info = openpyxl.load_workbook("E:\Projects\work_11_25\\Utility機種対応知能化\\Utility機種対応Input情報.xlsx")
6 wb_result = openpyxl.load_workbook("E:\Projects\work_11_25\\Utility機種対応知能化\\Utility詳細設計書_テンプレート_結果記入.xlsx")
7
8
9 ws_base = wb_temp["Color Correct Utility"]
10 ws_code = wb_temp["LANGCode"]
11 ws_info = wb_info["Color Correct Utility"]
12
13 # 多国语情报:
14 language_code = [ws_base['B22'].value, ws_base['B25'].value, ws_base['B28'].value, ws_base['B31'].value,
15 ws_base['B34'].value, ws_base['B37'].value, ws_base['B40'].value, ws_base['B43'].value,
16 ws_base['B46'].value, ws_base['B49'].value, ]
17 # ['ENU', 'JPN', 'CHS', 'CHT', 'DEU', 'ESP', 'FRA', 'ITA', 'KOR', 'PTB']
18
19 # 多国语编码
20 language_encoding = {}
21 for l in range(3, 26):
22 language_encoding.update({ws_code['B' + str(l)].value: ws_code['C' + str(l)].value})
23 # print(language_encoding)
24
25 # OS情报:
26 OS_info = [ws_base['B56'].value, ws_base['B57'].value]
27 # ['x86', 'x64']
28
29 path = ws_base['B4'].value
30 # setupdir\OS情報\Resource\多国語情報\ColorUtility\Oclutl.ini
31
32 path_list_dic = {}
33 path_list = []
34
35 for os in OS_info:
36 for lan in language_code:
37 path_list_dic[lan + '_' + os] = path.replace('多国語情報', lan).replace('OS情報', os)
38 # print(path_list_dic)
39 # {'ENU_x86': 'setupdir\\x86\\Resource\\ENU\\ColorUtility\\Oclutl.ini',
40 # 'JPN_x86': 'setupdir\\x86\\Resource\\JPN\\ColorUtility\\Oclutl.ini',
41 # 'CHS_x86': 'setupdir\\x86\\Resource\\CHS\\ColorUtility\\Oclutl.ini',
42 # 'CHT_x86': 'setupdir\\x86\\Resource\\CHT\\ColorUtility\\Oclutl.ini',
43 # 'DEU_x86': 'setupdir\\x86\\Resource\\DEU\\ColorUtility\\Oclutl.ini',
44 # 'ESP_x86': 'setupdir\\x86\\Resource\\ESP\\ColorUtility\\Oclutl.ini',
45 # 'FRA_x86': 'setupdir\\x86\\Resource\\FRA\\ColorUtility\\Oclutl.ini',
46 # 'ITA_x86': 'setupdir\\x86\\Resource\\ITA\\ColorUtility\\Oclutl.ini',
47 # 'KOR_x86': 'setupdir\\x86\\Resource\\KOR\\ColorUtility\\Oclutl.ini',
48 # 'PTB_x86': 'setupdir\\x86\\Resource\\PTB\\ColorUtility\\Oclutl.ini',
49 # 'ENU_x64': 'setupdir\\x64\\Resource\\ENU\\ColorUtility\\Oclutl.ini',
50 # 'JPN_x64': 'setupdir\\x64\\Resource\\JPN\\ColorUtility\\Oclutl.ini',
51 # 'CHS_x64': 'setupdir\\x64\\Resource\\CHS\\ColorUtility\\Oclutl.ini',
52 # 'CHT_x64': 'setupdir\\x64\\Resource\\CHT\\ColorUtility\\Oclutl.ini',
53 # 'DEU_x64': 'setupdir\\x64\\Resource\\DEU\\ColorUtility\\Oclutl.ini',
54 # 'ESP_x64': 'setupdir\\x64\\Resource\\ESP\\ColorUtility\\Oclutl.ini',
55 # 'FRA_x64': 'setupdir\\x64\\Resource\\FRA\\ColorUtility\\Oclutl.ini',
56 # 'ITA_x64': 'setupdir\\x64\\Resource\\ITA\\ColorUtility\\Oclutl.ini',
57 # 'KOR_x64': 'setupdir\\x64\\Resource\\KOR\\ColorUtility\\Oclutl.ini',
58 # 'PTB_x64': 'setupdir\\x64\\Resource\\PTB\\ColorUtility\\Oclutl.ini'}
59 # if p[3:] == "_x64":
60 dic_x86 = {}
61 dic_x64 = {}
62 for k in language_code:
63 dic_x86[k + '_x86'] = path_list_dic[k + '_x86']
64 dic_x64[k + '_x64'] = path_list_dic[k + '_x64']
65 # {'ENU_x86': 'setupdir\\x86\\Resource\\ENU\\ColorUtility\\Oclutl.ini', 'JPN_x86': 'setupdir\\x86\\Resource\\JPN\\ColorUtility\\Oclutl.ini', 'CHS_x86': 'setupdir\\x86\\Resource\\CHS\\ColorUtility\\Oclutl.ini', 'CHT_x86': 'setupdir\\x86\\Resource\\CHT\\ColorUtility\\Oclutl.ini', 'DEU_x86': 'setupdir\\x86\\Resource\\DEU\\ColorUtility\\Oclutl.ini', 'ESP_x86': 'setupdir\\x86\\Resource\\ESP\\ColorUtility\\Oclutl.ini', 'FRA_x86': 'setupdir\\x86\\Resource\\FRA\\ColorUtility\\Oclutl.ini', 'ITA_x86': 'setupdir\\x86\\Resource\\ITA\\ColorUtility\\Oclutl.ini', 'KOR_x86': 'setupdir\\x86\\Resource\\KOR\\ColorUtility\\Oclutl.ini', 'PTB_x86': 'setupdir\\x86\\Resource\\PTB\\ColorUtility\\Oclutl.ini'}
66 # {'ENU_x64': 'setupdir\\x64\\Resource\\ENU\\ColorUtility\\Oclutl.ini', 'JPN_x64': 'setupdir\\x64\\Resource\\JPN\\ColorUtility\\Oclutl.ini', 'CHS_x64': 'setupdir\\x64\\Resource\\CHS\\ColorUtility\\Oclutl.ini', 'CHT_x64': 'setupdir\\x64\\Resource\\CHT\\ColorUtility\\Oclutl.ini', 'DEU_x64': 'setupdir\\x64\\Resource\\DEU\\ColorUtility\\Oclutl.ini', 'ESP_x64': 'setupdir\\x64\\Resource\\ESP\\ColorUtility\\Oclutl.ini', 'FRA_x64': 'setupdir\\x64\\Resource\\FRA\\ColorUtility\\Oclutl.ini', 'ITA_x64': 'setupdir\\x64\\Resource\\ITA\\ColorUtility\\Oclutl.ini', 'KOR_x64': 'setupdir\\x64\\Resource\\KOR\\ColorUtility\\Oclutl.ini', 'PTB_x64': 'setupdir\\x64\\Resource\\PTB\\ColorUtility\\Oclutl.ini'}
67
68
69 def add_x86():
70 m = 0
71 for p in dic_x86:
72 with open(dic_x86[p], 'r', encoding=language_encoding[p[:-4]]) as f1:
73 new_section_name = '[CCMVer' + str(ws_info['C3'].value) + ']' # 获取H列单元格内容"section"
74 # [CCMVer42.3]
75
76 lst = f1.readlines() # 读取每行信息
77 if new_section_name+'\n' in lst:
78 print("该section已添加过,无需添加。")
79 sys.exit(0)
80 # #
81 n = lst.index('[StringSet1]\n') # 获取"[StringSet1]"的索引
82 lst.insert(n, new_section_name + '\n') # 将新section按照索引值插入列表中
83 if ws_info['C8'].value == 'Default':
84 for i in range(5, 12):
85 n = n + 1
86 item = ws_base['D' + str(i)].value # 获取item值
87 value = str(ws_info['C' + str(i-1)].value) # 获取value值
88 if i == 8:
89 value = value + "\n"
90 if i == 9:
91 value = str(ws_base['D' + str(22 + m)].value)
92 if i == 10:
93 value = str(ws_base['D' + str(23 + m)].value)
94 if i == 11:
95 value = str(ws_base['D' + str(24 + m)].value) + "\n"
96 m += 3
97
98 lst.insert(n, item + " = " + value + '\n') # 将item值与value值按照索引插入列表中
99
100 elif ws_info['C8'].value == 'A6':
101 for i in range(5, 12):
102 n = n + 1
103 item = ws_base['D' + str(i)].value # 获取item值
104 value = str(ws_info['C' + str(i - 1)].value) # 获取value值
105 if i == 8:
106 value = value + "\n"
107 if i == 9:
108 value = str(ws_base['E' + str(22 + m)].value)
109 if i == 10:
110 value = str(ws_base['E' + str(23 + m)].value)
111 if i == 11:
112 value = str(ws_base['E' + str(24 + m)].value) + "\n"
113
114 m += 3
115 lst.insert(n, item + " = " + value + '\n') # 将item值与value值按照索引插入列表中
116 print(lst)
117 with open(dic_x86[p], 'w', encoding=language_encoding[p[:-4]]) as f2:
118 f2.writelines(lst)
119
120
121 def add_x64():
122 m = 0
123 for p in dic_x64:
124 with open(dic_x64[p], 'r', encoding=language_encoding[p[:-4]]) as f1:
125 new_section_name = '[CCMVer' + str(ws_info['C3'].value) + ']' # 获取H列单元格内容"section"
126 # [CCMVer42.3]
127
128 lst = f1.readlines() # 读取每行信息
129 if new_section_name+'\n' in lst:
130 print("该section已添加过,无需添加。")
131 sys.exit(0)
132 # #
133 n = lst.index('[StringSet1]\n') # 获取"[StringSet1]"的索引
134 lst.insert(n, new_section_name + '\n') # 将新section按照索引值插入列表中
135 if ws_info['C8'].value == 'Default':
136 for i in range(5, 12):
137 n = n + 1
138 item = ws_base['D' + str(i)].value # 获取item值
139 value = str(ws_info['C' + str(i - 1)].value) # 获取value值
140 if i == 8:
141 value = value + "\n"
142 if i == 9:
143 value = str(ws_base['D' + str(22 + m)].value)
144 if i == 10:
145 value = str(ws_base['D' + str(23 + m)].value)
146 if i == 11:
147 value = str(ws_base['D' + str(24 + m)].value) + "\n"
148 m += 3
149
150 lst.insert(n, item + " = " + value + '\n') # 将item值与value值按照索引插入列表中
151
152 elif ws_info['C8'].value == 'A6':
153 for i in range(5, 12):
154 n = n + 1
155 item = ws_base['D' + str(i)].value # 获取item值
156 value = str(ws_info['C' + str(i - 1)].value) # 获取value值
157 if i == 8:
158 value = value + "\n"
159 if i == 9:
160 value = str(ws_base['E' + str(22 + m)].value)
161 if i == 10:
162 value = str(ws_base['E' + str(23 + m)].value)
163 if i == 11:
164 value = str(ws_base['E' + str(24 + m)].value) + "\n"
165 m += 3
166 lst.insert(n, item + " = " + value + '\n') # 将item值与value值按照索引插入列表中
167 print(lst)
168 with open(dic_x64[p], 'w', encoding=language_encoding[p[:-4]]) as f2:
169 f2.writelines(lst)
170
171
172 add_x86()
173 add_x64()