用python将excel中的文本转为unicode

 本文将实现将excel中的文本转为unicode功能,并保存在.h中。

执行前:

执行后:


import xlrd
import os
import binascii
import re
# coding=utf-8
def strs(row):
    values = ""
    for i in range(len(row)):
        if i == len(row) - 1:
            values = values + str(row[i])
        else:
            values = values + str(row[i])
    return values

#打开excel文件
data=xlrd.open_workbook('language.xlsx') 

#获取第一张工作表(通过索引的方式)
table=data.sheets()[0] 


def checkFileExit(fileName):
    if os.path.exists(fileName):     # 判断文件是否存在
       os.remove(fileName)       #存在,则删除文件  
    # 文件读写方式是追加
    sqlfile1 = open(fileName, "a", encoding='utf-16') 
    return sqlfile1
file1 = "language_c.h"  #中文
file2 = "language_e.h"  #英


nrows = table.nrows  #获取该sheet中的有效行数
ncols = table.ncols  #获取列表的有效列数
print (nrows)
print (ncols)

CurNcol = 0
CurNrow = 0

for CurNcol in range(1,ncols): # 每次遍历一列
    suffix = table.cell_value(1,CurNcol)
    # print(suffix)
    if CurNcol == 1:
        sqlfile = checkFileExit(file1)
    elif CurNcol == 2:
        sqlfile = checkFileExit(file2)

    # 逐行遍历
    for CurNrow in range(2,nrows):
        #返回单元格中的数据
        txt = table.cell_value(CurNrow,CurNcol)

        values = strs(txt)  # 调用函数,将行数据拼接成字符串
        s_to_unicode = values.encode("utf-16").decode("utf-16")
        sqlfile.writelines("//" + values + "\r\n")

        #一个字符串的开始,线协商索引
        sqlfile.writelines ("char " + table.cell_value(CurNrow,0) + suffix + '[] { ')
        for character in txt:
            byte = ord(character)
            byte_high = hex(byte >> 8)
            byte_low = hex(byte & 0x00FF)
            sqlfile.writelines (byte_high +', ' +  byte_low +', ')
        sqlfile.writelines("0x00, 0x0A },\r\n")  # 将字符串写入新文件   
sqlfile.close()  # 关闭写入的文件

如果xlsx格式文件时报格式不支持错误,回退下版本

pip uninstall xlrd
pip install xlrd==1.2.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值