python读取excel并写入excel,python读取excel文件

  python读取excel并写入excel,python读取excel文件

  前段时间做了一个小项目,帮海洋系的一个教授做了一个数据处理软件。它的基本功能很简单,就是对Excel中的一些数据进行过滤统计,合并多个表格的内容等。我之前没有处理Excel数据的经验,甚至我自己也很少用Excel。我记得《Python核心编程》最后一章讲过用Win32 COM操作office。看了之后不是很清楚。Google找到了很多可以处理excel数据的模块。经过比较,最终选择了openpyxl。openpyxl专门用于处理Excel2007及以上版本生成的xlsx文件。可惜我得到的数据中xls和xlsx都有,不过转换起来并不难,所以暂时忽略这个问题。

  模块的安装过程非常简单。官网上有简单的使用说明和API文档,整体上非常好用,基本满足我的需求。对于Excel文件,我需要做的就是读出相应位置的数据,并在相应位置写入数据。与此同时,python可以轻松完成数据处理。

  1.Excel数据的类型和组织

  openpyxl中定义了许多数据格式,我只介绍了三种最重要的格式:

  NULL:空值,对应于python中的None,表示该单元格中没有数据。

  Numberic:数字类型,按照浮点数统一处理。对应python中的float。

  String:字符串,对应python中的unicode。

  每个Excel数据文件从上到下分为三级对象:

  工作簿:每个Excel文件都是一个工作簿。

  工作表:每个工作簿可以包含多个工作表,具体对应于我们在Excel左下角看到的“工作表1”、“工作表2”等。

  单元格:每一张都是我们平时看到的表格。它可以包含M行、N列和每个确定的行号。对应于列号的网格是一个单元格。

  2.从Excel读取数据

  从一个已有的xlsx文件中读取数据,按照Excel文件的三个级别做以下三个步骤。

  1.打开工作簿:

  从openpyxl导入load_workbook

  WB=load _ workbook( file _ name . xlsx )

  2.打开所需的工作表:

  我们可以像这样打开工作簿中的第一个工作表:

  ws=wb.get_active_sheet()

  变量_active_sheet_index用于确定获取哪个工作表,默认设置为0。

  您也可以通过名称获取工作表:

  ws=WB . get _ sheet _ by _ name( sheet _ name )

  Openpyxl似乎没有提供按索引阅读工作表,但我们总是可以通过sheet_name轻松实现:

  工作表名称=wb.get _工作表名称()

  ws=WB . get _ sheet _ by _ name(sheet _ names[索引])

  3.获取相应单元格的值:

  Openpyxl提供了两种读取单元格的方法。一种是按照Excel的习惯用字母表示列号,例如:

  c=ws.cell(A4 )。价值

  也可以通过行号和列号读取:

  d=ws.cell(行=3,列=0)

  3.将数据写入Excel

  与阅读类似,编写Excel文件需要经过四个步骤:

  1.创建新工作簿

  直接创建新的工作簿对象:

  wb=工作簿()

  2.创建新工作表

  默认情况下,新创建的工作表是最后一个。如果您想要创建一个顶部工作表,您可以传入参数0:

  ws1=wb.create_sheet() #在末尾插入

  ws2=wb.create_sheet(0) #在第一个位置插入

  3.写入数据

  只要把要写入的数据直接分配给对应的单元格,如果只修改一个表的话。您可以跳过前两步,但注意不要覆盖其他数据:

  ws.cell(B5)=value1

  ws.cell(行=3,列=7)=值2

  4.保存数据

  最后,写写数据。请注意,如果保存路径下有一个同名文件,则之前的文件将被覆盖:

  wb.save(文件名. xlsx )

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: