Python解析excel之Android多语言支持

news/2024/7/21 6:35:19 标签: python, excel, android

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

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

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

pythonexcel_6">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")

http://www.niftyadmin.cn/n/363054.html

相关文章

Educational Codeforces Round 149 (Rated for Div. 2)

D. Bracket Coloring 链接 题目大意就是给一个括号序列染色以成为漂亮的括号序列 题目大意就是给一个括号序列染色以成为漂亮的括号序列 题目大意就是给一个括号序列染色以成为漂亮的括号序列 题目要求最少染色颜色种类 题目要求最少染色颜色种类 题目要求最少染色颜色种类 …

这款高性价比商用笔记本值得入手

随话说:工欲善其事,必先利其器。 对于打工人的我来说,办公一定要有一款适合的笔记本,否则真的是事倍功半。近日入手了戴尔Latitude 3330这款笔记本,通过使用体验,感觉真是一款高性价比的笔记本了。 接下来…

Vue3封装ant-design-vue表格

说明 该文仅仅用来记录自己使用Vue3基于ant-design-vue开发的时候对Table组建的二次封装,因为在vue中,组件不能像react中那样作为一种JS数据类型随意传递,需要使用slot,因此个人认为不够灵活,但是为了解决这个问题就是…

【IoT】嵌入式Linux开发:网络设备开发(测试题)

目录 网络开发 选择题 1、路由器工作在哪一层(B)

【算法题解】30. 全排列的递归解法

这是一道 中等难度 的题 https://leetcode.cn/problems/permutations/ 题目 给定一个不含重复数字的数组 n u m s nums nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1…

小兔鲜--项目总结 2

目录 登录-表单校验实现 表单如何进行校验 表单校验步骤 自定义校验规则 整个表单的内容验证 登录-基础登录业务实现 登录业务流程 Pinia管理用户数据 如何使用Pinia管理数据 关键代码总结 登录-Pinia用户数据持久化 持久化用户数据说明 ​编辑关键步骤总结和插件运行机…

[中间件漏洞]nginx漏洞复现

目录 文件解析漏洞 原理分析 复现过程 防御方法 目录遍历漏洞 原理分析 复现过程 防御方法 空字节代码执行漏洞 复现过程 防御方法 整数溢出漏洞(CVE-2017-7529) 复现过程 防御方法 文件名逻辑漏洞(CVE-2013-4547) 复现过程 防…

《Cocos Creator游戏实战》老虎机抽奖效果实现思路

在线体验地址 Cocos Creator | SlotMachine Cocos Store 购买地址(如果没有显示,那就是还在审核): https://store.cocos.com/app/detail/4958微店购买地址: https://weidian.com/item.html?itemID6338406353运行效果…