标签:反向 python value exce 有一个 操作 xlsx tps 三方
今天在处理excel表格的时候,有一个需要提取表格中部分数据的操作。如果人工操作的话,有将近几千行,这样重复操作劳民伤财。
所以python就派上用场了。
简单介绍一下我要处理的问题,在excel一列有层级关系的数据,以xxx-xxx-xxx-xxx的格式展示,但是我需要的是提取最后一个符号之前的数据。
废话不多说,上代码。
# _*_ coding: utf-8 _*_
import sys
import xlrd
import xlwt
test = xlrd.open_workbook(‘E:\demo.xlsx‘)  # 获取新建一个test表格
sheet = test.sheet_names()  # 获取sheet的名字
print(sheet)
sheet_1 = test.sheet_by_index(0)  # 获取第一个sheet,我的xxlsx只有一个sheet
# 获取列数
myrows = sheet_1.nrows  # 获取sheet_1的行数
print(myrows)
font0 = xlwt.Font()  # 16-19行代码都是在调整单元格的字体
font0.name = "Times New Roman"
style = xlwt.XFStyle()
style.font = font0
xlsx = xlwt.Workbook()  # 新建一个xlx文件,这里有一个坑,xlwt建的是xls文件,如果你命名问xlsx后缀的话,会出现打开错误
sht = xlsx.add_sheet(‘sheet1‘)  # 新建一个名为sheet1的sheet
def handle(cell):
    str = ‘.‘
    str1 = ‘-‘
    l = cell[::-1]  # 把字符串反向,详细参考https://www.cnblogs.com/jasmine0627/p/9510296.html
    l1 = l[l.index(str1):]  # 字符串里面获取自定义字符前面的字符串,详细参考https://www.cnblogs.com/java-deft/p/9828399.html
    l2 = l1[::-1]
    l3 = l2[:-1]
    print(l3)
    return l3
cell1 = sheet_1.col_values(0, 1, 562)  # 获取sheet_1中的1到562的数据,
rows = len(cell1)  # 获取cell1的长度
for i in range(rows):
    if isinstance(cell1[i], float):
        sht.write(i, 0, ‘‘, style)  # 将符合此条件的数据放入相应的单元格中
    else:
        sht.write(i, 0, handle(cell1[i]), style)  # 将符合此条件的数据放入相应的单元格中
xlsx.save(‘E:\demo_1.xls‘)  # 最后将处理后的数据保存到一张新的excel表中
代码有点粗糙,但是完成相应的操作,嘻嘻!
代码的质量还有待提高,慢慢来。
最后,人生苦短我用python!
[Python] 利用python的第三方库xlrd和xlwt来处理excel数据
标签:反向 python value exce 有一个 操作 xlsx tps 三方
原文地址:https://www.cnblogs.com/joiln/p/11623548.html