Python解析excel之Android多语言支持

最新车企给了一份多语言的翻译表,需要进行多语言支持,像下面这样
Python解析excel之Android多语言支持_第1张图片
针对这种文件,我们肯定不能一个个字符串取拷贝,很容易出错,所以想用python取处理这个表格然后生成对应的string文件.

1.首先我们建立好string的文件夹,这个在AndroidStudio上进行操作:

Python解析excel之Android多语言支持_第2张图片
按照上面的图步骤一个个去加

2.开始编写python解析excel

2.1 导入包

import xlrd
from xml.dom.minidom import Document
import pandas as pd #也可以用这种方式取读取,这个工程采用另一种方式

2.2 读取文件

创建全局DOM文档对象,使用xlrd模块的open_workbook函数打开指定Excel文件并获得Book对象(工作簿)SR24 App Translations_230516.xls’

doc = Document()
wb = xlrd.open_workbook('SR24 App Translations_230516.xls')

注意工作目录:
Python解析excel之Android多语言支持_第3张图片

2.3 创建方法,指定某一列数据写入string的name和value

从Android strings.xml的格式和excel的对比的话,我们知道,我们需要把excel第一列的值写入到string文件中name=“” 这里面,然后把第三列到最后一列的值从第二行开始插入到value区域,最后把这些内容写入strings.xml里面

Python解析excel之Android多语言支持_第4张图片

def generateXml():
    # 创建根元素
    message_ele = doc.createElement('resources')
    doc.appendChild(message_ele)
    for row in range(1,worksheet.nrows):#从第二行开始遍历,过滤掉key name

        value = worksheet.cell_value(row, 16)  # 第三列的数据,下标从0开始
        keys = worksheet.cell_value(row, 0)  # 第一列的key,下标从0开始
        message_body_ele = doc.createElement('string')
        message_body_ele.setAttribute('name', keys)
        message_body_ele.appendChild(doc.createTextNode(value))
        message_ele.appendChild(message_body_ele)
        print(value)

    # ===== 创建message_body_ele元素 =====
    f_name_full = f'strings.xml'
    with open(f_name_full, 'w', encoding='utf-8') as f:
        doc.writexml(f, indent='\t', newl='\n', addindent='\t', encoding='utf-8')

    print(f"Write to {f_name_full} OK")

你可能感兴趣的:(python,excel,android)