1、最近在使用nopCommerce
,它是一个基于C#
写的电商框架,说是框架其实不准确,它近乎是一套完整的电商平台源码,可以直接部署使用。只是因为它是国外的软件,所以在汉化以及微信支付宝支付支持上,需要安装额外的插件。
2、nopCommerce
的汉化操作不复杂,每种语言对应一个xml
文件,你选择多种语言的话,那顺便上传一下该种语言对应的xml
文件即可,xml
里面就是key
和value
的值。可问题是如果你使用最新的4.10
版本的话,你几乎找不到相应的汉化文件,最后只能找一个旧版的,然后查找补充缺的那些汉化字段。
3、问题是字段大概有6000多个。一个个比较看看哪个字段是英文里有而中文里没有的,然后添加这个字段相应的中文值,就这样一条条记录的增加,光是这么想一下,就不寒而栗。这个时候就是使用各种小工具的时候了。
4、先把所有数据导到Excel
中,然后根据字段名字排序,一般而言,如果中英文都有的话,应该是下面这样两两一组排列在一起的:
如果只有中文(该字段旧版本有但新版本已删除)或者只有英文(该字段为新版本新增)的话,会像下面这样:
5、接下来就是Python
出场的时候了。处理Excel
主要用到xlrd
和xlwt
这两个包,很好记忆,可以看做是ExcelRead
和ExcelWrite
的缩写。读取的主要任务是读取哪个open_workbook(file_name)
,这个文件的哪个薄sheet_by_name(sheet_name)
,哪一行row(row_no)
,哪一列col(col_no)
,哪一个单元格cell(row_no,col_no)
,那么要循环处理的话,得知道一共有多少行.nrows
或者多少列.ncols
。写入的API
相对简单一些,主要是创建一个空的Excel
对象xlwt.Workbook()
,给这个文件增加薄add_sheet(sheet_name)
,写入数据write(row_no,col_no,value)
,最后保存到哪个文件save(file_name)
。下面是简写的一个样例:
import xlrdimport xlwt
data_source_file_name = "LocaleStringResource.xlsx"
data_source_sheet_name = "LocaleStringResource"
target_source_file_name = "20181015-LocaleStringResource.xls"
target_source_sheet_name = "Sheet1"
data_source = xlrd.open_workbook(data_source_file_name)
table_source = data_source.sheet_by_name(data_source_sheet_name)
data_target = xlwt.Workbook()
table_target = data_target.add_sheet(target_source_sheet_name)
nrows_source = table_source.nrows
recored_id = ""
record_language_id = ""
record_resource_name = ""
record_resource_value = ""
source_row_no = 1target_row_no = 0
while source_row_no < nrows_source:
recored_id = table_source.row(source_row_no)[0].value
record_language_id = table_source.row(source_row_no)[1].value
record_resource_name = table_source.row(source_row_no)[2].value
record_resource_value = table_source.row(source_row_no)[3].value
if nrows_source - source_row_no == 1:
table_target.write(target_row_no,0,recored_id)
table_target.write(target_row_no,1,record_language_id)
table_target.write(target_row_no,2,record_resource_name)
table_target.write(target_row_no,3,record_resource_value)
break
c_record_resource_name = table_source.row(source_row_no+1)[2].value
if record_resource_name == c_record_resource_name:
if nrows_source - source_row_no == 2:
break
source_row_no = source_row_no + 2
else:
table_target.write(target_row_no,0,recored_id)
table_target.write(target_row_no,1,record_language_id)
table_target.write(target_row_no,2,record_resource_name)
table_target.write(target_row_no,3,record_resource_value)
target_row_no = target_row_no + 1
source_row_no = source_row_no + 1data_target.save(target_source_file_name)
6、安装好Python环境和相应的包之后,新建一个比如叫xxx.py的文件写上面的代码,然后在控制台直接python3 xxx.py就会生成一个我们需要的新的Excel文件。强大的第三方包+简单方便快捷一直是Python的大杀器。愿你也拥有这件武器。