openpyxl一点心得
先上代码
from openpyxl import workbook,load_workbook
class HomeWork():
def creat_xlsx(self):
"""
创建excel文件在当前目录
:return:
"""
wb = workbook.Workbook()
ws = wb.active
ws.title = "homework_sheet"
list = ("床前明月光","疑是地上霜","举头望明月","低头思故乡")
for i in range(1,5):
ws.cell(1,i).value = list[i-1] list1 = ("锄禾日当午","汗滴禾下土","谁知盘中餐","粒粒皆辛苦")
for i in range(1,5):
ws.cell(2,i).value = list1[i-1] wb.save("HomeWork.xlsx")
wb.close()
def read_xlsx(self,xlsx = "HomeWork.xlsx",ws = "homework_sheet"):
"""
读取excel文件中数据并整理成列表返回
:param xlsx:
:param ws:
:return:
"""
wb = load_workbook(xlsx)
ws = wb.get_sheet_by_name(ws)
list = []
list1 = []
for i in range(1,ws.max_row+1):
for j in range(1,ws.max_column+1):
str = ws.cell(i,j).value
list.append(str)
list1.append(list.copy())
list.clear()
wb.close()
return list1
def edit_xlsx(self,xlsx_row = None,xlsx_column= None,xlsx_str= None,xlsx = "HomeWork.xlsx",ws = "homework_sheet"):
"""
在指定位置写入数据
:param xlsx:
:param ws:
:return:
"""
wb = load_workbook(xlsx)
ws = wb.get_sheet_by_name(ws)
ws.cell(xlsx_row,xlsx_column).value = xlsx_str
wb.save(xlsx)
wb.close()
if __name__ == "__main__":
homework = HomeWork()
# 创建文件
homework.creat_xlsx()
# 读取文件并整理
read_list = homework.read_xlsx()
print(read_list)
#写入
i = int(input("请输入你要编辑的行数:"))
j = int(input("请输入你要编辑的列数:"))
str = input("请输入你要替换的数据:")
homework.edit_xlsx(i,j,str)
从创建到读写都涉及到的三组方法,相关的用法百度很多,就不一一说明了。
注意点三处:
1.文件创建/读/写的最后都不要忘记save和close,不然很可能吃力不讨好
2.出现Permission denied报错不要慌张,如果是windows平台,第一时间查看文件是否手动打开了,然后查看写入的数据格式是否正确;如果是linux平台或者类似平台,可以手动赋予权限
3.打开/创建的文件名需要带后缀,并且后缀一定要是xlsx,不然会出现文件无法识别的报错
4.如果不是汉字而是输出其他类型内容,比如字典、列表或者元祖,可以使用eval(str)来转换
openpyxl一点心得的更多相关文章
- WebBrowser一点心得,如果在Javascript和Winform代码之间实现双向通信
原文:WebBrowser一点心得,如果在Javascript和Winform代码之间实现双向通信 最近工作需要,学习了一下winform内嵌webbrowser控件,然后与htm页面中的javasc ...
- 使用Webbrowser的一点心得体会
原文:使用Webbrowser的一点心得体会 自从用上VS2005后,发现多了个WebBrowser控件(.net 2003中不带),为图方便吧,有好多小工具就用这个写的,慢慢也有点体会了,总结一下, ...
- 谈谈选用技术的原则,技术学习方法技巧,阅读代码的技巧及其它 MSF的一点心得
谈谈技术原则,技术学习方法,代码阅读及其它(正文) 这篇文章是前一阵在水木BBS上和别人讨论中偶自己发言的摘编,是偶这几年开发过程完全经验式的总结.完全个人经验,供批判. 一.选用技术的原则 比较规范 ...
- 【并行计算与CUDA开发】基于NVIDIA显卡的硬编解码的一点心得 (完结)
原文:基于NVIDIA显卡的硬编解码的一点心得 (完结) 1.硬解码软编码方法:大体流程,先用ffmpeg来读取视频文件的包,接着开启两个线程,一个用于硬解码,一个用于软编码,然后将读取的包传给解码器 ...
- 关于使用Exception的一点心得
毫无疑问,Exception有很多优点.查看任何一本面向对象的书籍,都会提到异常相对于返回值标记状态的不足以及避免错误导致程序崩溃的问题.看起来是很好的,用起来也是很好的.可是这么多年过去了,异常用的 ...
- SVM一点心得体会
支持向量机的学习说是刚刚开始,又不合理,只能说隔了很长的时间再看,终于在分类这块的层面上有了新的认识. 总的来说,支持向量机分为线性支持向量机和非线性支持向量机,线性支持向量机又可以分为硬间隔最大化线 ...
- 记录自己对EventLoop和性能问题处理的一点心得
1.EventLoop 这里说的EventLoop不是指某一个具体的库或是框架,而是指一种程序实现结构.这种结构多是基于IO多路转接的API(select.poll.epoll之类)以reactor模 ...
- 从Eclipse转移到IntelliJ IDEA一点心得
http://www.ituring.com.cn/article/37792 本人使用IntelliJ IDEA其实并不太久,用了这段时间以后,觉得的确很是好用.刚刚从Eclipse转过来的很多人开 ...
- Android平板上开发应用的一点心得——精确适配不同的dpi和屏幕尺寸
一.引言 Android的开源使厂商无需自行研发OS,大大降低了研发.生产的成本,使得Android平板品牌如雨后春笋般爆发,山寨机厂商们似乎又找到了一丝希望.与此同时带来的是广大开发者的苦不堪言,各 ...
随机推荐
- 如何让Enum枚举实现异或操作
var flag = Week.Monday; flag = flag | Week.Wednesday; if ((flag & Week.Monday) == Week.Monday ) ...
- Cause: dx.jar is missing
Cause: dx.jar is missing 解决方案 方案一 copy dx.jar到目标编译版本 查找相应的buildToolsVersion版本下是否有dx.jar存在 如果不存在则可以co ...
- SpringBoot与SpringCloud的版本对应详细版
大版本对应: Spring Boot Spring Cloud 1.2.x Angel版本 1.3.x Brixton版本 1.4.x stripes Camden版本 1.5.x Dalston版本 ...
- three.js:使用createMultiMaterialObject创建的多材质对象无法使用光线跟踪Raycaster选中
创建多材质对象: var loader = new THREE.DDSLoader(); var map = loader.load('../assets/textures/Mountains_arg ...
- AX2012 ERP Excel报表方案
AX提供了丰富的报表方式,内置X++开发的报表.基于微软ReportingService的报表.每个界面都可以导出Excel.Management Reporter.实施ERP最主要的二开工作就是完成 ...
- List集合去重
本篇包含了两种去重,一种是List集合去重,一种是两个List集合去重合并 List集合去重,一般是两种方式,一种是遍历list集合判断后赋给另一个list集合,一种是用赋给set集合再返回给list ...
- kafka connect rest api
1. 获取 Connect Worker 信息curl -s http://127.0.0.1:8083/ | jq lenmom@M1701:~/workspace/software/kafka_2 ...
- DCDC电源 TPS54525
电路图: 输入电压12V,输出电压5V.不接负载可以获得5V输出,接入负载后只有4mV,且PG为低. 预计原因:可能是上电瞬间电流过大,芯片过流保护. 解决方案:SS软启动引脚的电容C331加大至1u ...
- Extjs中grid 的ColumnModel 属性配置
一, 用数组的方式配置ColumnModel var colModel = new Ext.grid.ColumnModel([ { header:'编号', dataIndex:'id',width ...
- linux下使用nmon工具对服务器性能进行检测
1.nmon工具介绍: nmon工具是linux系统下可以对服务器及系统性能进行监测,CPU信息.CPU占用.内存使用.网卡使用等.最大的好处是此工具会将结果以列表的形式或者是模拟图形化的方式展示,不 ...