[Python] 利用python的第三方库xlrd和xlwt来处理excel数据

Posted 仔仔的棒棒糖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Python] 利用python的第三方库xlrd和xlwt来处理excel数据相关的知识,希望对你有一定的参考价值。

今天在处理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利用国内镜像安装第三方库

Python利用国内镜像安装第三方库

[Python] 利用python的第三方库xlrd和xlwt来处理excel数据

python第三方库怎样升级

安装Pandas

浅谈python的第三方库——pandas