利用python快速处理excel文档

背景:
 最近领导叫整理excel文档,从中筛选出某项数据进行查询整理导出,其实很简单,但是难就难在数据量太大,sheets表格太多(50多个表),1w+数据,根本无法筛选导出,而且我不会使用excel的函数库,本来可以全部查找但是无法导出,这就难到我了,没办法, 作为一个运维,要想进办法去偷懒,能交给机器做的就绝不自己动手。所以考虑利用python进行处理文档,直接遍历所有数据,然后查询导出,省时省力。
 废话不多说,直接上python代码,由于时间紧,我仅仅写了我需要处理的数据,如果有需要使用的需修改成自己可以使用,这里不做过多的说明。
模块安装:pip install xlrd
# -*- coding: UTF-8 -*-
import os
import xlrd, sys,re

#查找文件,精确到file
Filename = "C:\Users\Administrator\Desktop\\123.xlsx"

#打开excel文件
bk = xlrd.open_workbook(Filename)

#把所有的sheets表梳理出来
shxrange = range(bk.nsheets)

#这是打印所有的表名,不使用,bk.sheets()[x],x为index,默认从0开始
for x in shxrange:
    p = bk.sheets()[x].name.encode('utf-8')
    #print "Sheets Number(%s): %s" % (x, p.decode('utf-8'))

#同上,循环表名
for numb in shxrange:
    #每个表里内容赋值给table
    table = bk.sheets()[numb]
    #把表里所有行赋值给nrows
    nrows = table.nrows
    #循环所有行
    for i in range(nrows):
        #把表里所有值赋值给text
        text = str(table.row_values(i))
        #print(text)
        #从text查找所需字符串赋值给ip
        ip = re.findall('10.32.220.(\d+)',text)
        #循环查找出来文本,打印出来所需要的
        for o in ip:
            print('10.32.220.'+o[0:13])


这样就把我需要的数据筛选出来了,然后可以根据需要进行导出,或者继续查找。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值