背景:
开发的APP需要导入多国语言,研发需要将翻译后的字符串复制到values下的stings.xml中,六国语言复制的工作量太大,一开始想着使用Excel的批量替换,百度了一下给office装了个插件叫做方方格子
但我电脑上始终用不了这个插件,于是乎用python写脚本来实现这个功能
思路:
取stings.xml数据表中的第一行,再遍历translate.xlsx翻译文件寻找与之对应的翻译,最后用replace将翻译替换上去
取stings.xml数据表中的第二行,再遍历…以此类推…
上代码
from openpyxl import load_workbook
fn = "..\\case\\strings.xlsx" #导入Android Studio内的字符串xml文件(转换成了xlsx文件)
ws = load_workbook(fn) # 打开fn文件,workbook:工作簿(excel文件)
st = ws["Sheet2"] #得到工作簿中的Sheet2表格
nRow=0 #行计数器
for row in st.iter_rows(): #遍历每一行的数据,此时row为一个list,里面的元素为每一行的单元格
nRow += 1
fn1 = "..\\case\\translate.xlsx" # 导入多国语言数据表
ws1 = load_workbook(fn1) # 打开fn文件,workbook:工作簿(excel文件)
st1 = ws1["Sheet1"]
for row1 in st1.iter_rows():
if str(row1[0].value) in str(row[0].value):
result = str(row[0].value).replace(str(row1[0].value),str(row1[1].value)) #replace(old,new),replace方法将旧字符串替换成新字符串
st["B" + str(nRow)] = result #将替换后的表格存放到B列
if row1[0].value == "%END%": #识别到%END%后停止循环
break
if row[0].value == "%END%":
break
ws.save(fn) #保存并退出excel
下图是准备好的翻译数据:
这是执行结果: