背景
Python中,想要打开已经存在的excel的xls文件,然后在最后新的一行的数据。
折腾过程
1.找到了参考资料:
其实是没有直接实现:
打开已有的excel文件,然后在文件最后写入,添加新数据
的函数的。
只不过,可以利用:
中的库,组合实现。
给出了示例代码:
3. 刚又看到,有更简洁的代码:
4.现在打算去试试。
先去安装xlrd:
6.再去安装xlutils:
7.接着可以去写代码了。
8.先是:
9.后是:
10.后来是用如下代码:
实现了,打开,刚刚保存的,已经存在的xls文件,
然后写入新数据的目的。
但是有个缺点,
第一次保存时的,带格式(标题内容为红色粗体)的内容:
重新写入新数据,再保存时,却丢失了之前的格式(标题没了红色粗体了):
11.后来还是参考:
中的那个标准答案,在用xlrd.open_workbook时,添加对应的参数formatting_info=True,就可以保留原有格式了。
完整代码:
最后重新写入的数据,就可以保留之前的格式了(标题为红色粗体):
总结
python中操作,本身就复杂的xls文件,还是有点小麻烦的。
想要,往已经存在的xls文件中,写入新的行,新的数据,对应的逻辑为:
用xlrd.open_workbook打开已有的xsl文件注意添加参数formatting_info=True,得以保存之前数据的格式
然后用,from xlutils.copy import copy;,之后的copy去从打开的xlrd的Book变量中,拷贝出一份,成为新的xlwt的Workbook变量
然后对于xlwt的Workbook变量,就是正常的:
通过get_sheet去获得对应的sheet
拿到sheet变量后,就可以往sheet中,写入新的数据
写完新数据后,最终save保存
相关完整代码为:
其中,关于如何下载和安装对应的库,可参考: