| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> python办公自动化笔记(一):读写Excel图像数据 -> 正文阅读 |
|
[Python知识库]python办公自动化笔记(一):读写Excel图像数据 |
引言本篇博客的初衷是在做天气检测测试的时候,为了将各种天气检测结果与图像相对应上,一时半会儿没想到有什么好的可视化工具,想了想那要不就用python代码将图片与图片对应的结果特征直接写进Excel中,可能会比较直观,另外,为了使本篇博客内容丰满一些,又去实验楼顺带做了 openpyxl 使用 demo1. 写入一行或多行数据:
2. 移动范围数据 以下图数据为例: 代码为 因此
3.删除行或列 从索引
从索引
4. 设置字体样式
分别设置了字体名称、字号、加粗、斜体、颜色。完整代码如下:
5.设置行高和列宽 代码如下(以调整第 1 行行高和第 C 列列宽为例):
6.单元格合并和取消合并
openpyxl 问题总结目前来看,这个库还是会有很多bug,就我刚开始用就出现的问题有三个。第一个问题是: openpyxl.utils.exceptions.InvalidFileException: openpyxl does not support the old .xls file format, please use xlrd to read this file, or convert it to the more recent .xlsx file format. 就我在尝试读取我之前存储的一个xls文档时,它提示我无法读取老格式,我寻思xls的格式确实是2013年之前的,但国内大部分人除非买电脑预装了office套装,否则应该还是用2013年左右的吧,因为就我之前参加很多场数模比赛,自己使用的以及听说大部分人用的,感觉还是xls和老版本,2016版本以后上云后联网速度打开太慢,不符合建模量子速读文献的作风,emmm…。 然后报了这个错后,因为我是在linux环境下,我理所当然的touch了一个新的xlsx,按照我之前使用pandas、xlsxwriter等包的时候它是可以的,即使后来我知道touch的方式是错误的,但是很多包还是有一个当前路径无Excel文件自动创建的机制,等同于判断了os.path.exists,那么openpyxl 的错误如下: zipfile.BadZipFile: File is not a zip file 至于其它错误,无非是Excel内部的一些问题,这里就不再展示,主要提及我的一个应用场景。 图像等数据自动读写Excel这里可以参照How to read pictures in Excel with Python? -Know 一文的思路,目前python能操作Excel图片的方式如下: 读出Excel图像这里有几种方式,第一种是还可以根据 openpyxl 与 openpyxl-image-loader 做到指定位置读取,demo如下:
还有一种直接用win32和pillow读取图片的,参照How to read pictures in Excel with Python? -Know 的demo如下:
如果是Windows的话个人比较推荐第二种,因为openpyxl会比较慢,如果是大批量图像读取,根据下表来看可能会出现问题,而且不一定是无损图片,但我突然发现正常人可能会像Excel写入大量图片做对比,但写入后就不会再读了,那样不如对象存储,emmm。。。关于各种Excel的读写测试见如下图,这里就不再详细介绍其它库了: ## 写入Excel图像最近我有一个需求是,有大概几百张图像要进行天气检测的测试,但是我测试完后,通过pandas可以得到图像的元数据,也就是它蕴含的特征,比如说什么天气,该图位于哪一个视频下等等,我当然可以将这些数据写入Excel,但写进去后还是需要跟服务器上的图像进行一一比对,用人眼判断对不对,想了想,觉得还是找个顺便把图也写进Excel的demo会比较好。但找了一会儿,发现网上大多是写入单张图的,不管单元格的格式,这种应用场景可能是一些数字各种计算后,直接画了一张统计图丢表中,如下,代码见如上一直参考的链接:
这里代码运行完只会有前面两列,后面是又通过pandas的concat拼起来的,原图是1920 * 1080,所以按照长宽比进行适量缩放,可能图片看得不清晰,在Excel打开后,还是能直接进行判断对不对,这也是不想加一个web网页功能的话,最稳妥的展示方式了(PS:不然又要加班?,emmm…) |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 14:38:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |