先上代码

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一点心得的更多相关文章

  1. WebBrowser一点心得,如果在Javascript和Winform代码之间实现双向通信

    原文:WebBrowser一点心得,如果在Javascript和Winform代码之间实现双向通信 最近工作需要,学习了一下winform内嵌webbrowser控件,然后与htm页面中的javasc ...

  2. 使用Webbrowser的一点心得体会

    原文:使用Webbrowser的一点心得体会 自从用上VS2005后,发现多了个WebBrowser控件(.net 2003中不带),为图方便吧,有好多小工具就用这个写的,慢慢也有点体会了,总结一下, ...

  3. 谈谈选用技术的原则,技术学习方法技巧,阅读代码的技巧及其它 MSF的一点心得

    谈谈技术原则,技术学习方法,代码阅读及其它(正文) 这篇文章是前一阵在水木BBS上和别人讨论中偶自己发言的摘编,是偶这几年开发过程完全经验式的总结.完全个人经验,供批判. 一.选用技术的原则 比较规范 ...

  4. 【并行计算与CUDA开发】基于NVIDIA显卡的硬编解码的一点心得 (完结)

    原文:基于NVIDIA显卡的硬编解码的一点心得 (完结) 1.硬解码软编码方法:大体流程,先用ffmpeg来读取视频文件的包,接着开启两个线程,一个用于硬解码,一个用于软编码,然后将读取的包传给解码器 ...

  5. 关于使用Exception的一点心得

    毫无疑问,Exception有很多优点.查看任何一本面向对象的书籍,都会提到异常相对于返回值标记状态的不足以及避免错误导致程序崩溃的问题.看起来是很好的,用起来也是很好的.可是这么多年过去了,异常用的 ...

  6. SVM一点心得体会

    支持向量机的学习说是刚刚开始,又不合理,只能说隔了很长的时间再看,终于在分类这块的层面上有了新的认识. 总的来说,支持向量机分为线性支持向量机和非线性支持向量机,线性支持向量机又可以分为硬间隔最大化线 ...

  7. 记录自己对EventLoop和性能问题处理的一点心得

    1.EventLoop 这里说的EventLoop不是指某一个具体的库或是框架,而是指一种程序实现结构.这种结构多是基于IO多路转接的API(select.poll.epoll之类)以reactor模 ...

  8. 从Eclipse转移到IntelliJ IDEA一点心得

    http://www.ituring.com.cn/article/37792 本人使用IntelliJ IDEA其实并不太久,用了这段时间以后,觉得的确很是好用.刚刚从Eclipse转过来的很多人开 ...

  9. Android平板上开发应用的一点心得——精确适配不同的dpi和屏幕尺寸

    一.引言 Android的开源使厂商无需自行研发OS,大大降低了研发.生产的成本,使得Android平板品牌如雨后春笋般爆发,山寨机厂商们似乎又找到了一丝希望.与此同时带来的是广大开发者的苦不堪言,各 ...

随机推荐

  1. 二、易语言 api 相关

    1. 取窗口句柄    对应的api: FindWindow (寻找顶级窗口) 2.取窗口矩形(位置) 对应的api: GetWindowRect(取窗口矩形) 3.取窗口标题 对应的api: Get ...

  2. python基础知识13---函数对象、函数嵌套、名称空间与作用域、装饰器

    阅读目录 一 函数对象 二 函数嵌套 三 名称空间与作用域 四 闭包函数 五 装饰器 六 练习题 一 函数对象 1 函数是第一类对象,即函数可以当作数据传递 #1 可以被引用 #2 可以当作参数传递 ...

  3. 2018-2019-2 20175227张雪莹《Java程序设计》实验三 《敏捷开发与XP实践》

    2018-2019-2 20175227张雪莹<Java程序设计> 实验三 <敏捷开发与XP实践> 实验报告封面 课程:Java程序设计 班级:1752班 姓名:张雪莹 学号: ...

  4. 红米手机5 Plus完美刷成开发版获取root权限的教程

    小米的设备不同手机型号通常情况小米官方都提供两个不同系统,可分为稳定版和开发版,稳定版没有提供ROOT超级权限管理,开发版中就提供了ROOT超级权限,较多时候我们需要使用的一些功能强大的工具,都需要在 ...

  5. 用yum快速搭建LAMP平台

    实验环境: [root@nmserver-7 html]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@nms ...

  6. Service Worker 离线无法缓存Post请求的问题解决

    许多非REST API甚至可以用于读取数据的POST请求:典型的例子是graphql.soap和其他rpcpapi.但是,Post请求不能在一个现成的渐进式Web应用程序中缓存和脱机使用.浏览器的缓存 ...

  7. spark2.1源码分析3:spark-rpc如何实现将netty的Channel隐藏在inbox中

    class TransportServer bootstrap.childHandler(new ChannelInitializer<SocketChannel>() { @Overri ...

  8. 记录2-在mac上安装ubuntu 16.04 LTS

    前几天升级了我用了六七年mac硬件,内存由4G变为8G,硬盘也换成1T SSD,索性把一直想装的ubuntu也装了,方便温习下以前的工作环境. 我比较喜欢LTS的版本,所以安装了16.04. 主要步骤 ...

  9. CentOS安装MySQL的完整步骤

    1.官方安装文档 http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/ 2.下载 Mysql yum包 http://dev.mysql.co ...

  10. python对mysql进行简单操作

    python 连接MySQL数据库,进行简单操作 一.连接MySQL数据库,关闭连接 import pymysql db = pymysql.connect(host="xxx.xxx.x. ...