12.3.5 从表中取得行和列

可以将 Worksheet 对象切片,取得电子表格中一行、一列或一个矩形区域中的所有
Cell 对象。然后可以循环遍历这个切片中的所有单元格。在交互式环境中输入以下代码:
>>>  import  openpyxl
>>>  wb  =  openpyxl.load_workbook('example.xlsx')
>>>  sheet  =  wb.get_sheet_by_name('Sheet1')
>>>  tuple(sheet['A1':'C3'])
((<Cell  Sheet1.A1>,  <Cell  Sheet1.B1>,  <Cell  Sheet1.C1>),  (<Cell  Sheet1.A2>,
<Cell  Sheet1.B2>,  <Cell  Sheet1.C2>),  (<Cell  Sheet1.A3>,  <Cell  Sheet1.B3>,
<Cell  Sheet1.C3>))
❶  >>>  for  rowOfCellObjects  in  sheet['A1':'C3']:
➋                     for  cellObj  in  rowOfCellObjects: print(cellObj.coordinate,  
cellObj.value)
print('---  END  OF  ROW  ---')
A1  2015-04-05  13:34:02
B1  Apples C1  73
---  END  OF  ROW  ---
A2  2015-04-05  03:41:23
B2  Cherries C2  85
---  END  OF  ROW  ---
A3  2015-04-06  12:46:51
B3  Pears C3  14
---  END  OF  ROW  ---
这里,我们指明需要从 A1 到 C3 的矩形区域中的 Cell 对象,得到了一个 Generator对象,它包含该区域中的 Cell 对象。为了帮助我们看清楚这个 Generator 
对象,可以使用它的 tuple()方法,在一个元组中列出它的 Cell 对象。
这个元组包含 3 个元组:每个元组代表 1 行,从指定区域的顶部到底部。这 3个内部元组中的每一个包含指定区域中一行的Cell 对象,从最左边的单元格到最右边。所以总的来说,工作表的这个切片包含了从 
A1 到 C3 区域的所有 Cell 对象,从左上角的单元格开始,到右下角的单元格结束。
要打印出这个区域中所有单元格的值,我们使用两个 for 循环。外层 for 循环遍历这个切片中的每一行➊。然后针对每一行,内层 for 
循环遍历该行中的每个单元格➋。要访问特定行或列的单元格的值,也可以利用 Worksheet 对象的 rows 和 columns
属性。在交互式环境中输入以下代码:
>>>  import  openpyxl
>>>  wb  =  openpyxl.load_workbook('example.xlsx')
>>>  sheet  =  wb.get_active_sheet()
>>>  sheet.columns[1]
(<Cell  Sheet1.B1>,  <Cell  Sheet1.B2>,  <Cell  Sheet1.B3>,  <Cell  Sheet1.B4>,
<Cell  Sheet1.B5>,  <Cell  Sheet1.B6>,  <Cell  Sheet1.B7>)
>>>  for  cellObj  in  sheet.columns[1]: print(cellObj.value)


Apples Cherries Pears Oranges Apples Bananas Strawberries
利用 Worksheet 对象的 rows 属性,可以得到一个元组构成的元组。内部的每个元组都代表 1 行,包含该行中的 Cell 对象。columns 
属性也会给你一个元组构成的元组,内部的每个元组都包含 1 列中的Cell 对象。对于 example.xlsx,因为有 7 行 3 列,rows给出由 7 个元组构成的一个元组(每个内部元组包含 3 
个Cell 对象)。columns 给出由 3 个元组构成的一个元组(每个内部元组包含 7 个Cell 对象)。
要访问一个特定的元组,可以利用它在大的元组中的下标。例如,要得到代表 B列的元组,可以用 sheet.columns[1]。要得到代表 A 列的元组,可以用 
sheet.columns[0]。在得到了代表行或列的元组后,可以循环遍历它的对象,打印出它们的值。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大飞哥软件自习室

希望支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值