Python操作Excel基础(2)

上节介绍了利用包openpyxl实现Excel基本读写操作;本节详细介绍openpyxl对单元格属性的读取。其中最常用的属性为单元格坐标单元格格式


我们尝试读取F盘根目录下的Test.xlsx文件的内容,来了解openpyxl提供的单元格属性。“Test.xlsx”的第一个表格的内容如下:

Python操作Excel基础(2)

首先,我们加载Excel文件并找到该表单的对象:

from openpyxl import Workbook

from openpyxl import load_workbook

excel_file_path = 'F:Test.xlsx'

workbook = load_workbook(excel_file_path) #读取Excel文件

sheetnames = workbook.get_sheet_names() #获得表单名字列表

sheet = workbook.get_sheet_by_name(sheetnames[0]) #打开Excel的第1个表格

1.row,column(行列坐标)

首先,我们尝试通过row,column属性读取单元格的行列坐标。

for i in range(1,9):

cell=A1=sheet.cell(row=i,column=1)

print(cell.value,cell.row,cell.column,cell.column_letter,cell.coordinate)

其结果为:

1234 1 1 A A1

这是字符 2 1 A A2

2019-03-26 00:00:00 3 1 A A3

0.15 4 1 A A4

1321 5 1 A A5

13:30:15 6 1 A A6

0.041666666666666664 7 1 A A7

3214 8 1 A A8

其中row属性为行编号,column属性为列序号,column_letter属性为列编号(即字母表示的列),coordinate属性为Excel中的单元格名称(即字母表示的列+行编号)

2.data_type(单元格类型)

下面我们读取这一列单元格的data_type属性。

for i in range(1,9):

cell=sheet.cell(row=i,column=1)

print(cell.value,cell.data_type)

其结果为:

1234 n

这是字符 s

2019-03-26 00:00:00 d

0.15 n

1321 n

13:30:15 d

0.041666666666666664 n

3214 n

从结果可以看出,数值、百分比、货币、分数、科学计数5种单元格格式都由n表示,日期和时间格式都由d表示,字符格式由s表示。

3.encoding(编码格式)

下面我们读取刚才这一列单元格的data_type属性。

for i in range(1,9):

cell=A1=sheet.cell(row=i,column=1)

print(cell.value,cell.encoding)

其结果为:

1234 utf-8

这是字符 utf-8

2019-03-26 00:00:00 utf-8

0.15 utf-8

1321 utf-8

13:30:15 utf-8

0.041666666666666664 utf-8

3214 utf-8

通常而言,Excel的编码格式都是UTF-8,如果为其他编码格式,我们要注意单独处理。

4.parent(单元格所属表单)

通过parent属性可以获得单元格所属的表单。

for i in range(1,3):

cell=A1=sheet.cell(row=i,column=1)

print(cell.value,cell.parent)

结果:

1234 <Worksheet "Test">

这是字符 <Worksheet "Test">

2019-03-26 00:00:00 <Worksheet "Test">

0.15 <Worksheet "Test">

1321 <Worksheet "Test">

13:30:15 <Worksheet "Test">

0.041666666666666664 <Worksheet "Test">

3214 <Worksheet "Test">


openpyxl文档地址:

https://openpyxl.readthedocs.io/en/stable/api/openpyxl.html

作者:长行

阿里云服务器

编辑该文章

编辑该文章,必须放入您本人的支付宝或微信收款码,通过审核后可,如果浏览者觉得您写的不错了直接对您打赏

复制加密链接

This is a modal dialog!

邮箱

This is a modal dialog!