个人工作记录使用,有侵权请及时联系删除
工作需要,经常需要跟excel打交道,准备做一个过滤本省本网的工具集成到自动化脚本中(本省本网:就是资源节点是本地设备覆盖,涉及公司具体业务,故不做赘述),这个工具会用到xlrd(读excel),xlwt(写excel),话不多讲上代码
import xlwt
import xlrd
import datetime
def local_net():
file_name=input('请输入文件名:')
workbook=xlrd.open_workbook('文件路径%s'%file_name,'r')#打开excel表格,用xlrd
sheet_name = workbook.sheet_names()[0] # sheet名字
sheet = workbook.sheet_by_name(sheet_name)
#sheet=workbook.sheet_by_index(0)#sheet索引从0开始
sheet=workbook.sheet_by_name(sheet_name)
print(sheet.name,sheet.nrows,sheet.ncols)#打印sheet名,行,列
cols_provice=sheet.col_values(2)#excel的索引类似于python列表是从0开始的,此处的2代表C列,以此类推
cols_city=sheet.col_values(3)
cols_pro=sheet.col_values(4)
aim_cols_provice=sheet.col_values(10)
aim_cols_city=sheet.col_values(11)
aim_cols_pro=sheet.col_values(12)
num=0
local=xlwt.Workbook(encoding='utf-8')#这行是开始写,用xlwt
worksheet1=local.add_sheet('非本省本网')#新建sheet名
try:
for provice,city,pro,aim_provice,aim_city,aim_pro in zip(cols_provice,cols_city,cols_pro,aim_cols_provice,aim_cols_city,aim_cols_pro):#不用zip的时候会报错,qq一个老哥教的,感觉还挺好用
if provice==aim_provice and city==aim_city and pro==aim_pro:#此处判断是否为本省本网
continue
else:
#print(provice,city,pro,aim_provice,aim_city,aim_pro)
worksheet1.write(num, 0, label=pro)#往里写
worksheet1.write(num, 1, label=provice)
worksheet1.write(num, 2, label=city)
worksheet1.write(num, 3, label=aim_pro)
worksheet1.write(num, 4, label=aim_provice)
worksheet1.write(num, 5, label=aim_city)
num+=1
local.save('非本省本网%s.xls'%datetime.datetime.now().strftime('%Y-%m-%d')#获得当前时间)#保存excel
print('表格已导出,请前往脚本执行路径下查看')
except Exception as reult:
print('导出失败,异常为%s'%reult)
if __name__=='__main__':
local_net()
工具还没写完,目前先做到这里,后续会增加与其他表格的对比等功能,会及时更新
参考这位老哥的文章
https://www.cnblogs.com/zhoujie/p/python18.html