1、pip openpyxl库:

pip install openpyxl -i http://pypi.douban.com/simple --trust-host pypi.douban.com

2、导入模块

import openpyxl

from openpyxl load_workbook

3、读取文件

1 wb = load_workbook(r'E:\****.xlsx')
2 shell = wb['Sheet1']

4、读取行、列、单元格:

row   行,以数字表示,从1开始

column 列,以字母表示,从A开始
cell  单元格
sheet  工作表
 
读取行:shell[row]
print(shell[1])

-----------------------------------
(<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.B1>, <Cell 'Sheet1'.C1>, <Cell 'Sheet1'.D1>, <Cell 'Sheet1'.E1>, <Cell 'Sheet1'.F1>)

读取列:shell['column']

print(shell['A'])    #这里的column需要用字母A、B、C等

--------------------------------------
(<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.A2>, <Cell 'Sheet1'.A3>, <Cell 'Sheet1'.A4>, <Cell 'Sheet1'.A5>, <Cell 'Sheet1'.A6>, <Cell 'Sheet1'.A7>, <Cell 'Sheet1'.A8>, <Cell 'Sheet1'.A9>, <Cell 'Sheet1'.A10>, <Cell 'Sheet1'.A11>, <Cell 'Sheet1'.A12>, <Cell 'Sheet1'.A13>, <Cell 'Sheet1'.A14>, <Cell 'Sheet1'.A15>, <Cell 'Sheet1'.A16>, <Cell 'Sheet1'.A17>, <Cell 'Sheet1'.A18>, <Cell 'Sheet1'.A19>, <Cell 'Sheet1'.A20>, <Cell 'Sheet1'.A21>, <Cell 'Sheet1'.A22>, <Cell 'Sheet1'.A23>, <Cell 'Sheet1'.A24>, <Cell 'Sheet1'.A25>, <Cell 'Sheet1'.A26>, <Cell 'Sheet1'.A27>, <Cell 'Sheet1'.A28>, <Cell 'Sheet1'.A29>, <Cell 'Sheet1'.A30>, <Cell 'Sheet1'.A31>, <Cell 'Sheet1'.A32>, <Cell 'Sheet1'.A33>, <Cell 'Sheet1'.A34>, <Cell 'Sheet1'.A35>, <Cell 'Sheet1'.A36>, <Cell 'Sheet1'.A37>, <Cell 'Sheet1'.A38>, <Cell 'Sheet1'.A39>, <Cell 'Sheet1'.A40>, <Cell 'Sheet1'.A41>, <Cell 'Sheet1'.A42>, <Cell 'Sheet1'.A43>, <Cell 'Sheet1'.A44>, <Cell 'Sheet1'.A45>, <Cell 'Sheet1'.A46>, <Cell 'Sheet1'.A47>)

读取单元格: shell.cell(row,column)  or  shell['A1']

print(shell.cell(1,1))   #注意:这里的列号需要用数字

--------------------------------------
<Cell 'Sheet1'.A1> print(shell['A1']) ---------------------------------------
<Cell 'Sheet1'.A1>

读取切片: shell['A1':'B5']

5、获取单元格的值:

shell1['A1'].value  /shell.cell(1,1).value

6、获取切片的值:

由于切片的类型是元组,因此不能直接用.value的方式来获得值,需要将其转化为可遍历的enumerate():

1 e1 = shell1['E32':'E38']
2 for index,item in enumerate(e1):
3 for cell in item :
4 value = cell.value
5 str = value[0]+'ROUND('+value[1:]+',0)'
6 cell.value = str

7、文件保存:

wb.save('filename')

9、自动给写好计算公式加入取整方法的代码:

#放入excel表中所在文件夹,修改数据切片位置
from openpyxl import load_workbook #打开文件
wb = load_workbook('test.xlsx')
shell1 = wb['Sheet1']
#切片位置
e1 = shell1['C1':'C10']
#修改公式
for index,item in enumerate(e1):
for cell in item :
value = cell.value
str = value[0]+'ROUND('+value[1:]+',0)'
cell.value = str
wb.save('test2.xlsx')

代码用法:

1、将上述代码用文本文件保存,按注释修改代码后,修改文件名为round.py,放到需要修改的表格文件同一文件夹内
2、文件夹内Shift+右键,菜单中选择“在此外打开Power Shell窗口“
3、输入python round.py
4、等待程序执行完毕后,查看文件平中新生成的xlsx文件;
以上,记录,以备脑力过衰不记事时查看【doge】

Python 与 excel的简单应用的更多相关文章

  1. 使用Python对Excel表格进行简单的读写操作(xlrd/xlwt)

    算是一个小技巧吧,只是进行一些简单的读写操作.让人不爽的是xlrd和xlwt是相对独立的,两个模块的对象不能通用,读写无法连贯操作,只能单独读.单独写,尚不知道如何解决. #①xlrd(读) #cod ...

  2. 使用Python处理Excel表格的简单方法

    使用Python处理Excel表格的简单方法 这篇文章主要介绍了使用Python处理Excel表格的简单方法,本文给大家介绍的非常详细,需要的朋友可以参考下 Excel 中的每一个单元,都会有这些属性 ...

  3. 用python处理excel文件有多轻松?工作从未如此简单

    最近需要频繁读写 excel 文件,想通过程序对 excel 文件进行自动化处理,发现使用 python 的 openpyxl 库进行 excel 文件读写实在太方便了,结构清晰,操作简单.本文对 o ...

  4. Python读写Excel表格(简单实用)

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:giao窝里giao首先安装两个库:pip install xlrd. ...

  5. Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验

    Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出E ...

  6. Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

    Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...

  7. 使用Python将Excel中的数据导入到MySQL

    使用Python将Excel中的数据导入到MySQL 工具 Python 2.7 xlrd MySQLdb 安装 Python 对于不同的系统安装方式不同,Windows平台有exe安装包,Ubunt ...

  8. python操作excel表格(xlrd/xlwt)

    最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...

  9. [转]用Python读写Excel文件

    [转]用Python读写Excel文件   转自:http://www.gocalf.com/blog/python-read-write-excel.html#xlrd-xlwt 虽然天天跟数据打交 ...

随机推荐

  1. java 文件转成pdf文件 预览

    一.前端代码 //预览功能 preview: function () { //判断选中状态 var ids =""; var num = 0; $(".checkbox& ...

  2. scala之map,List,:: , +:, :+, :::, +++操作

    scala之map,List操作 1.Map操作 2.List操作 2.1Demo1 2.2Demo2 3.:: , +:, :+, :::, +++ 1.Map操作 Map(映射)是一种可迭代的键值 ...

  3. nohup和&后台运行,进程查看及终止

    文章目录 一.nohup 1.1用途:不挂断地运行命令. 1.2语法:nohup Command [ Arg - ] [ & ] 1.3退出状态:该命令返回下列出口值: 二.& 2.1 ...

  4. 子网划分、变长子网掩码和TCP/IP排错__散知识点

    1.IP零子网(ip subnet-zero):这个命令可以允许你在自己的网络设计中使用第一个和最后一个子网.例如,C类掩码192通常只可以提供子网64和128,但在使用了ip subnet-zero ...

  5. php之在admin的目录下的php文件里加上JSON的报头,运行php文件会提示下载

    去掉报头就正常,但在前端引用数据时要加上JSON.parse,不然读不出数据. $.get("fetchUpLast.php",{ rd:new Date().getTime()} ...

  6. 2019牛客国庆集训派对day2

    A(模拟): #include <bits/stdc++.h> using namespace std; const int inf = 0x3f3f3f3f; const double ...

  7. Codeforces Round #635 (Div. 2)

    Contest Info Practice Link Solved A B C D E F 4/6 O O Ø  Ø     O 在比赛中通过 Ø 赛后通过 ! 尝试了但是失败了 - 没有尝试 Sol ...

  8. 灯光照射,圆形探测类问题(解题报告)<分层差分><cmath取整>

    题目描述 一个n*n的网格图上有m个探测器,每个探测器有个探测半径r,问这n*n个点中有多少个点能被探测到. 输入输出格式 输入格式: (1<=r<n<=5000) (1<=m ...

  9. 洛谷 P5057 [CQOI2006]简单题 (树状数组,位运算)

    题意:有一个长度为\(n\)的数组,进行\(m\)次操作,每次读入一个值\(t\),如果\(t=1\),则将区间\([l,r]\)的数字反转,若\(t=2\),则查询下标为\(i\)的值. 题解:树状 ...

  10. JavaScript——六

    magin和padding的区别:https://www.cnblogs.com/zxnn/p/8186225.html magin:兄弟之间的 padding:父子关系 body和网页边框左右距离上 ...