网站建设专利,上海广告制作公司,wordpress 链接关系,上传PDF到wordpress网站前段时间做了个小项目#xff0c;帮个海洋系的教授做了个数据处理的软件。基本的功能很简单#xff0c;就是对Excel里面的一些数据进行过滤#xff0c;统计#xff0c;对多个表的内容进行合并等。之前没有处理Excel数据的经验#xff0c;甚至于自己都很少用到Excel。记得《…前段时间做了个小项目帮个海洋系的教授做了个数据处理的软件。基本的功能很简单就是对Excel里面的一些数据进行过滤统计对多个表的内容进行合并等。之前没有处理Excel数据的经验甚至于自己都很少用到Excel。记得《Python核心编程》的最后一章里有讲到用Win32 COM操作office 看了一下讲的不是很清楚。google了一下找到不少能处理excel数据的模块。对比了一下最终选定了openpyxlopenpyxl专门用于处理Excel2007及以上版本产生的xlsx文件。不幸的是我所得到的数据中xls和xlsx都有不过转换并不是什么难事就暂时吧这个问题忽略了。
模块的安装过程非常简单官网上有简单的使用说明和API文档整体来说使用非常容易也基本能满足我的需求。对于Excel文件我所需要的只是从中将相应位置的数据读取出来以及把数据写入到对应的位置中去。而其间数据的处理通过python可以很容易地完成。
1. Excel数据的类型及组织方式 openpyxl中定义了多种数据格式我只涉及到了其中最重要的三种 NULL 空值对应于python中的None表示这个cell里面没有数据。 numberic 数字型统一按照浮点数来进行处理。对应于python中的float。 string 字符串型对应于python中的unicode。
每一个Excel数据文件从上至下分为三个层级的对象 workbook 每一个Excel文件就是一个workbook。 sheet 每一个workbook中可以包含多个sheet具体就对应Excel中我们在左下脚所看到的“sheet1”,“sheet2”等。 cell 每一个sheet就是我们通常所看到的一个表格可以含有m行n列每个确定的行号列号所对应的一个格子就是一个cell。
2. 从Excel中读取数据 从一个既有的xlsx文件中读取数据按照Excel文件的三个层级分别做以下三个步骤
1. 打开workbook
from openpyxl import load_workbook wb load_workbook(file_name.xlsx)2. 打开所需的sheet 我们可以这样打开workbook中的第一个sheet
ws wb.get_active_sheet()变量_active_sheet_index用来确定获取哪一个sheet而默认情况下它被置为0。 也可以通过sheet的名称来获取sheet
ws wb.get_sheet_by_name(sheet_name)openpyxl似乎没有提供按索引来读取sheet不过我们总是能很容易地通过sheet_name来实现
sheet_names wb.get_sheet_names() ws wb.get_sheet_by_name(sheet_names[index])3. 获取对应cell的值 openpyxl提供可两种方式来读取cell一是按照Excel的习惯用字母来代表列号例如
c ws.cell(A4).value也可以按照行号列号来读取
d ws.cell(row 3, column 0)3. 将数据写入Excel 同读取类似写入一个Excel文件要经历一下四个步骤 1. 新建workbook 直接新建一个workbook对象即可
wb Workbook()2. 新建sheet 默认情况下新创建的sheet是排在最后的若想要创建一个排在最前的sheet可以传入参数0
ws1 wb.create_sheet() # insert at the end ws2 wb.create_sheet(0) # insert at the first position3. 写入数据
直接将要写入的数据赋值给相应的cell即可若仅仅是修改一个表。可以跳过前两个步骤不过要注意不要覆盖掉其它数据
ws.cell(B5) value1 ws.cell(row 3, column 7) value24. 保存数据
最后写入将数据写入即可注意若保存路径下有同名的文件的话之前的文件会被覆盖
wb.save(file_name.xlsx)