编辑
2020-03-29
实用笔记
00
请注意,本文编写于 1499 天前,最后修改于 655 天前,其中某些信息可能已经过时。

目录

参考:
代码

最近帮同学处理一些数据,目的是分别从不同的一些excel文件中收集数据,按照格式汇总到生成的excel中. 保存下来,避免以后忘了,主要用到的就是xlrd和xlwt两个模块。

参考:

python

模块 python
模块

代码

python
import xlwt,xlrd import os # 初始化工作表 workbook = xlwt.Workbook(encoding='utf-8') sheet2014 = workbook.add_sheet('2014') sheet2015 = workbook.add_sheet('2015') sheet2016 = workbook.add_sheet('2016') sheet2017 = workbook.add_sheet('2017') sheet2018 = workbook.add_sheet('2018') sheets = [sheet2014,sheet2015,sheet2016,sheet2017,sheet2018] #style 对齐设置 alignment = xlwt.Alignment() alignment.horz = xlwt.Alignment.HORZ_CENTER alignment.vert = xlwt.Alignment.VERT_CENTER style = xlwt.XFStyle() style.alignment = alignment # 初始化第一列 def init(name): name.write(0,0,'2014',style) name.write(0,1,'盈利能力:净资产收益率',style) name.write(0,2,'总资产净利率',style) name.write(0,3,'投入资本回报率',style) name.write(0,4,'销售净利率',style) name.write(0,5,'销售毛利率',style) name.write(0,6,'各项指标在营业总收入中占比:营业利润/营业总收入',style) name.write(0,7,'营业总成本/营业总收入',style) name.write(0,8,'销售费用/营业总收入',style) name.write(0,9,'管理费用/营业总收入',style) name.write(0,10,'财务费用/营业总收入',style) for sheet_item in sheets: init(sheet_item) # 写入需要的数据的函数 def writedata(tar,src,name,i): i = i+1 tar.write(i,0,name,style) tar.write(i,1,src[3],style) tar.write(i,2,src[13],style) tar.write(i,3,src[15],style) tar.write(i,4,src[17],style) tar.write(i,5,src[18],style) tar.write(i,6,src[22],style) tar.write(i,7,src[25],style) tar.write(i,8,src[26],style) tar.write(i,9,src[27],style) tar.write(i,10,src[28],style) #按顺序加载列表 idd = 0 lists = xlrd.open_workbook(r'C:\Users\pve_win10_1\Desktop\xialinya\raw.xls').sheet_by_index(0).col_values(0)[16:26] print('读取文件',':',lists) for item in lists: # 获取公司名称 name = item # 获取工作表 data = xlrd.open_workbook(item+'.xlsx').sheet_by_index(0) # 查找年份在哪里列 row1 = data.row_values(0) for i in range(len(row1)): index = row1[i].find('2014') if not index: # 如果这一项有2014,那么2015等就依次减1 # 依次得到各个年份的数据哦 data2014 = data.col_values(i) data2015 = data.col_values(i-1) data2016 = data.col_values(i-2) data2017 = data.col_values(i-3) data2018 = data.col_values(i-4) datas = [data2014,data2015,data2016,data2017,data2018] # 写入这个公司的数据 for i in range(5): writedata(sheets[i],datas[i],name,idd) idd = idd + 1 # 设置单元格高度 for each in sheets: for i in range(12): each.col(i).width = 5000 for i in range(15): each.row(i).height_mismatch = True each.row(i).height = 300 # 保存文件 workbook.save(r'C:\Users\pve_win10_1\Desktop\export\数据收集.xls') print('over!')
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:mereith

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!