某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入、删除列、拷贝、求和,所以给了4天的时间要完成。

我不愿意做大量简单而且又是重复性工作,看了看3只表格的格式基本一样,于是我用python写了30行代码完成了这个"艰巨”任务。

0x01

用python操作excel需要安装xlrd、xlwt(或者其他的模块也行)。

读取excel文件:workbook = xlrd.open_workbook('filename.xlsx')

获取所有表名:sheet_names = workbook.sheet_names()

通过索引顺序获取一个工作表:sheet0 = workbook.sheets()[0] || sheet1 = workbook.sheet_by_index(1)

通过名称获取一个工作表:sheet3= data.sheet_by_name(u'sheetname')

获取表的行、列大小:rows = sheet.nrows || cols = sheet.ncols

获取指定行、列的值:col0_value = sheet.col_valsue(0) || row0_value = sheet.row_values(0)

创建工作对象:wk = xlwt.Workbook(encoding='utf-8')

添加sheet对象:sheet0 = wk.add_sheet(sheetname,cell_overwrite=True)

将值写入单元格:sheet0.write(row,col,value)

保存文件:wk.save('filename.xls')

0x02

# coding=utf-8

import xlrd

import xlwt

workbook = xlrd.open_workbook('2014年排放量.xlsx')

sheet_names = workbook.sheet_names()

#通过索引顺序获取一个工作表

sheet0 = workbook.sheets()[0]

sheet1 = workbook.sheet_by_index(1)

sheet2 = workbook.sheet_by_index(2)

sheet3 = workbook.sheet_by_index(3)

sheet4 = workbook.sheet_by_index(4)

sheet5 = workbook.sheet_by_index(5)

sheet6 = workbook.sheet_by_index(6)

sheet7 = workbook.sheet_by_index(7)

sheet8 = workbook.sheet_by_index(8)

#通过名称获取一个工作表

#table = data.sheet_by_name(u'Sheet1')

#获取多少行、列

sht0_rows = sheet0.nrows

sht0_cols = sheet0.ncols

#获取指定单元格的值

temp = sheet0.cell(0,2)

#获取指定行、列的值

temp_col0 = sheet0.col_values(0)

temp_row0 = sheet0.row_values(0)

temp_col1 = sheet0.col_values(1)

temp_row1 = sheet0.row_values(1)

#需要204个单元格 一共tb0_rows个 减去前两个

'''

for i in range(204/6):#循环34次

for j in temp_row:

j[2:8]

'''

#print(tb0_rows,tb0_cols,temp,temp_row,temp_row[2:8],temp_col)

#取选定工作范围

#print(temp_row[2:206])

wk = xlwt.Workbook(encoding='utf-8')

wk_lst = []#创建sheet列表

for shtname in sheet_names:

#print(shtname)

wk_lst.append(wk.add_sheet(shtname,cell_overwrite_ok=True))

#print(len(wk_lst))

'''测试插入表格

for c in range(len(temp_col0)):

wk_lst[0].write(c,0,temp_col0[c])

#print(temp_col[c])

'''

#需要读的sheet列表

xlrd_sheet_list = [sheet0,sheet1,sheet2,sheet3]

for tm in range(len(wk_lst)):

if tm<4:

'''1. 创建样表'''

for x in range(2):

#print('----------x:',x)

temp_col = sheet0.col_values(x)

for c in range(len(temp_col)):

#print('--------c:',c)

#print(temp_col[c])

wk_lst[tm].write(c,x,temp_col[c])

temp_row = sheet0.row_values(0)

for r in range(len(temp_row)-2):

#print(tm,len(temp_row))

wk_lst[tm].write(0,r+2,temp_row[r+2])

'''2. 写入工作区域'''

for r in range(2,13):#创建工作行

tmp_row = xlrd_sheet_list[tm].row_values(r)

w = tmp_row[2:206] # 切片获取该行工作列

#print(len(w) / 6)

x = 0

for i in range(int(len(w) / 6)):

sum_pf = round(w[0 + x] + w[1 + x] + w[2 + x] + w[3 + x] + w[4 + x] + w[5 + x], 2)

wk_lst[tm].write(r,2+x,sum_pf)

print(sum_pf)

x += 6

print("----------------------------------------r:",r,2+x,sum_pf)

#for i in range(2,13):

# print(i)

wk.save('nb.xls')

'''#测试创建excel文件

wkt = xlwt.Workbook()

ws = wkt.add_sheet('CO')

ws.write(0,0,'1')

wkt.save('fuck.xls')

'''

'''

#临时注释 一会儿放开

for r in range(2,13):#创建工作行

tmp_row = sheet0.row_values(r)

w = tmp_row[2:206] # 切片获取该行工作列

#print(len(w) / 6)

x = 0

y = 0

for i in range(int(len(w) / 6)):

#wk_lst[0].write(2+)

print(round(w[0 + x] + w[1 + x] + w[2 + x] + w[3 + x] + w[4 + x] + w[5 + x], 2))

x += 6

print("----------------------------------------",r)

'''

'''#测试切片 相加

w = temp_row[2:206]#切片获取

print(len(w)/6)

x=0

for i in range(int(len(w)/6)):

print(round(w[0+x]+w[1+x]+w[2+x]+w[3+x]+w[4+x]+w[5+x],2))

x+=6

'''

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python做excel自动化-python操作excel让工作自动化相关推荐

  1. python让工作自动化_python操作excel让工作自动化

    某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入.删除列.拷贝.求和,所以给了4天的时间要完成. 我不愿意做大量 ...

  2. python+办公自动化_Python办公自动化之操作excel

    最近家属的工作有个频繁操作excel的事情,我想到可以利用python的办公自动化来解决这重复性的工作.py5分钟,节约两小时. 整理了思路,理清了操作步骤如下: 安装openpyxl库: 学习pyt ...

  3. python表格处理工具_python 操作excel表格的方法

    说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错. 这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本. 1. ...

  4. Python批量下载电子邮件附件并汇总合并Excel文件_如何让繁琐工作自动化:聊聊Python与RPA...

    RPA,是Robotic Process Automation的英文缩写,中文是机器人流程自动化,利用软件将重复性的工作自动化.基本目标是让人从重复性强的繁琐工作中解放出来去做更有意义更具创造性的工作 ...

  5. python数字求和程序_python操作excel求和

    这里介绍如何用python来自动完成我们的excel工作. 本文的目的是展示一些常见的Excel任务,以及如何在python pandas中执行类似的任务.例子微不足道,但重要的是通过这个例子来循序渐 ...

  6. python怎么用excel-python怎么操作Excel

    大家好,我们今天来一起探索一下用Python怎么操作Excel文件.与word文件的操作库python-docx类似,Python也有专门的库为Excel文件的操作提供支持,这些库包括xlrd.xlw ...

  7. python 第三方模块之 pandas 操作 excel

    python 解析 excel 对比 包 版本 xls读 xlsx读 xls写 xlsx写 备注 xlrd 1.1.0(2017年8月22日) √ √ 2.0 之后不支持xlsx xlwt 1.3.0 ...

  8. python语言处理excel_Python语言操作excel

    本文主要向大家介绍了Python语言操作excel,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. #!/usr/bin/env python#coding: utf-8impor ...

  9. python提取内容保存excel_Python操作Excel之数据提取

    最近发现excel数据量极大,并且通过简单的数据操作不能提取到我需要的数据,如果单独操作,数据量太大耗时太长. 想着通过简单的方式,并且快速提取数据,就想到了Python. python操作Excel ...

  10. python设置excel自动换行_python操作excel

    python操作Excel openpyxl模块 0.介绍 openpyxl是一个Python库,用于读取/写入Excel 2010 xlsx / xlsm / xltx / xltm文件. 它的诞生 ...

最新文章

  1. 蚂蚁上市挂牌,员工激励人均超800万,你以为创业真的那么容易么?
  2. Django之ORM使用以及模板语言
  3. 关于Window操作系统中对Oracle的性能监控
  4. Agile PLM EC Understand the BOM Publishing Process
  5. sql语句创建唯一索引
  6. MATLAB 二脉冲对消、重频参差滤波器设计仿真
  7. ZoomIt 屏幕放大 缩小 屏幕画笔 演示 手写笔迹 倒计时 秒变白板 pointofix
  8. html5分镜头脚本范例,分镜头脚本范本
  9. 使用IntelliJ IDEA打开一个项目步骤
  10. EFCore:关于DDD中值对象(Owns)无法更新数值
  11. lstm 文本分类_带有lstm和单词嵌入的灾难推文上的文本分类
  12. 车间制造管理系统(下)
  13. c++并发编程实战 第一章
  14. 浅析功耗性能肖特基二极管的重要性
  15. 【专家访谈】测试专家 陈林钧 访谈记录整理汇总
  16. Block Design内部BRAM控制器与外部BRAM的连接
  17. 彩虹易支付新增短信宝短信接口
  18. Word复选框字体丢失解决
  19. Allegro·芯片GND引脚铺铜问题及解决方案)
  20. DP和HDMI有什么区别?DP1.4和DP1.2线材怎么选?显示器视频带宽如何计算?

热门文章

  1. python tkinter-单选、多选
  2. android studio导入android studio工程
  3. Linux之Bash_Script_Program_002
  4. 串讲-解释篇:作用域,作用域链,执行环境,变量对象,活动对象,闭包
  5. asp.net mvc 之旅—— 第一站 从简单的razor入手
  6. 元素exist/present/visible(vanish)/enable的区别
  7. HDU2014 青年歌手大奖赛_评委会打分【入门】
  8. POJ1088 Bailian1088 滑雪【DFS+记忆化搜索】
  9. POJ3253 Fence Repair【哈夫曼树+优先队列】
  10. POJ NOI0105-45 金币