Python解析excel之Android多语言支持

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

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

在这里插入图片描述
按照上面的图步骤一个个去加

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')

注意工作目录:
在这里插入图片描述

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

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

在这里插入图片描述

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")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值