当前位置: 首页 > news >正文

安装Python3及使用openpyxl和xlrd将Excel自动生成多语言

参考:
https://openpyxl.readthedocs.io/en/stable/api/openpyxl.workbook.workbook.html?highlight=sheetnames#openpyxl.workbook.workbook.Workbook.sheetnames

安装环境:

pip3 install openpyxl
pip3 install xlrd
一、使用openpyxl解析Excel
#!/usr/bin/env python
# -*- coding:utf-8 -*-import openpyxl
import xlrd# 读取xlsx
wk = openpyxl.load_workbook(excelFilePath)
# 读取所有sheet的名字
sheetNames = wk.sheetnames
# 读取所有sheet
tables = wk.tables
# 所有table的数量
len(ws.tables)
# 遍历所有sheet
for table in wk.tables.values():print(table)
# 读取指定sheet
sheet = wk[sheetName]
# 读取sheet的行数
rowCount = sheet.max_row
# 读取最大列数
rowCount = sheet.max_column
# 读取指定行指定列的值, 索引值是从1开始,跟一般的索引从0开始不一样
sheet.cell(rowIndex, colIndex).value
二、python3 将数组或字典转换为json文件
import json
# 将内容转换为json
demoList = [{"name":"x"},{"name":"y"}]
jsonPath = "xxx/demo.json"
with open(jsonPath, 'w') as file_object:json.dump(demoList, file_object, ensure_ascii=False)
三、python3 将文本写入文件
filePath = "xxx/test.text"
fileWriter = open(filePath, "wb")
# 构造文本
content = "\"name\"=\"aaa\";\n"
# 将文本写入
fileWriter.write(content.encode())
# 关闭流fileWriter.close()
四、python3 读取文本文件
filePath = "xxx/test.txt"
f = open(filePath)
for index, line in enumerate(f):if line != None and len(line) != "0" and "=" in line:kvList = line.split("=")keyStr = kvList[0].strip().split("\"")[1]valStr = kvList[1].strip().split("\"")[1]# print("keyStr: %s valStr: %s", keyStr, valStr)
五、python3 解析字符串里的指定内容
import re
lineStr = "hello name=234"
# 找出hello与=之间的内容
regx = r'hello(.+?)='
matchs = re.findall(regx, lineStr)
if matchs:for item in matchs:print(item)

完整内容

# -*- coding:utf-8 -*-import openpyxl
import os"""
解析每一个列文多语言文件
"""
def readColData(targetDir, sheet, colIndex):# 读取每一行iosFileManager = None# 行数、列数rowCount = sheet.max_row# 读取第一行languageName = languageName = sheet.cell(0+1,colIndex+1).valueif languageName == None or len(languageName) == "0":returnlanguageName = languageName.split("(")[1]languageName = languageName.split(")")[0]LocalizablePath = os.path.join(targetDir, languageName + ".lproj/Localizable.strings")if os.path.exists(LocalizablePath):#删除文件,path为文件路径os.remove(LocalizablePath)# 开启读文件iosFileManager = open(LocalizablePath, "wb")# 读取数据,从第二行读起,第一行是标题for rowIndex in range(1, rowCount):# 模块名称:第一列moduleName = sheet.cell(rowIndex+1,1+1).value# key:固定第一列为keykeyStr = sheet.cell(rowIndex+1,1+1).value# valuevalStr = sheet.cell(rowIndex+1,colIndex+1).valueif(not keyStr):# 没有key的行为注释行moduleName = sheet.cell(rowIndex+1,0+1).valuecontent = "\n// " + moduleName + "\n"iosFileManager.write(content.encode())else:# 内容行content = "\"" + keyStr + "\" " + "= " + "\"" + valStr + "\";\n"iosFileManager.write(content.encode())# 保存关闭iosFileManager.close()print ("end converting")def startConvert(xlsxPath, targetDir):print ("Start converting")if xlsxPath is None:print ("xls files directory can not be empty! try -h for help.")returnif targetDir is None:print ("Target file directory can not be empty! try -h for help.")return# 读取xlsxwk = openpyxl.load_workbook(xlsxPath)# 读取所有tabsheet = wk.tables.values()[0]colCount = sheet.max_columnprint ("colCount: %d" % (colCount))# 第一列为模块名,第二列为key,第三列才是翻译的valuefor colIndex in range(2, colCount):print ("colIndex: %d" % (colCount))readColData(targetDir, sheet, colIndex)print ("end converting")def main():# 解析参数xlsxPath = "examples/helloi18n.xlsx"targetDir = "examples/output/ios/i18n"# 开始转换startConvert(xlsxPath, targetDir)
# python python/xlsx2string.pymain()
最后编辑于:2025-06-28 11:15:52


喜欢的朋友记得点赞、收藏、关注哦!!!

http://www.dtcms.com/a/396302.html

相关文章:

  • 网站开发好不好wordpress 更换编辑器
  • 微小店网站建设比较好wordpress 支付 小程序
  • 网站建站需要什么软件邢台pc网站开发
  • *Linux - 文件查找与打包压缩(纯干货版)
  • 网站建设规划方案菜单设计制作网站
  • 网站文章怎么更新时间微信公众号粉丝下单
  • 顶尖物理高校研究所,引进Infortrend普安科技块级SAN存储
  • 韩雪冬 网站wordpress手机导航栏模板
  • 天津网站优化公司做个简单的网站多少钱
  • 浙江企业响应式网站建设设计做少儿培训网站的公司
  • 仿站小工具+wordpress联雅网站建设
  • jsp网站建设课程设计厦门城乡住房建设厅网站
  • 基于目标导向扩散模型与影响函数的EHR数据生成方法
  • 公司网站怎么优化电商网站设计工作内容
  • 网站建站公司有必要做吗互联网产品运营推广方案
  • ansible安装与模块使用
  • 网站建设分金手指专业二五wordpress主题no.7
  • 免费关键词挖掘网站柳州市住房建设保障网
  • 想用好 AI 辅助编程,什么最重要?
  • 福州省建设局网站成都三合一网站建设
  • 河北省建设工程网站建设银行个人网站
  • 关于组件封装
  • 德国购物网站大全wordpress空间服务器
  • 应持续抓好二级网站的建设工作免费制作永久个人网站
  • 【Linux网络编程】数据链路层 高级IO模型
  • 网站怎么做下拉刷新合肥仿站定制模板建站
  • 程序员做项目网站关于中秋节网页设计实训报告
  • 16.Linux RAID 存储技术
  • 网站摇奖活动怎么做只做特卖的网站
  • LLM安全基础入门:揭开大模型安全的面纱