一.openxl读取数据的步骤:
excel表格读取数据的步骤:
数据类型。
1.导入 openpyxl 模块。
2.调用 openpyxl.load_workbook()函数。
3.取得 Workbook 对象。
4.调用 get_active_sheet()或 get_sheet_by_name()工作簿方法。
5.取得 Worksheet 对象。
6.使用索引或工作表的 cell()方法,带上 row 和 column 关键字参数。
7.取得 Cell 对象。
8.读取 Cell 对象的 value 属性。
二.实际代码:
import openpyxl
def otherfun():
"""
所有的函数位置,练习使用
:return:
"""
# wb=openpyxl.load_workbook("民政部全国编号.xlsx")
# print(type(wb))
# 获取所有的sheet表格名称
# print(wb.get_sheet_names())
# 使用指定的表格sheet
# sheet=wb.get_sheet_by_name('zf编号') # 不同版本不能使用的,通用版本wb['zf编号']
# sheet=wb['Sheet2']
# 获取数据
# print(sheet['A1'])
# print(sheet['A1'].value)
# print(sheet['B1'])
# print(sheet['B1'].value)
# 单元格‘B1’的内容信息
# unit_c=sheet["B1"]
# 定位单元格的信息
# 1.坐标信息 row--行 column--列
# unitvalue='Row'+str(unit_c.row)+',Column'+unit_c.column+'is'+unit_c.value
# unitvalue="'Row'+{}+',Column'+{}+'is'+{}".format(unit_c.row,unit_c.column,unit_c.value)
#
# print(unitvalue)
#
# print("-------------")
# # 2.coordinate --坐标信息
# # coordinate --中文--坐标,表格坐标信息
# unitvalue1="'Cell'+{}+'is'+{}".format(unit_c.coordinate,unit_c.value)
# print(unitvalue1)
# 3.单元格信息
# 3.坐标信息,cell(row=1,column=1)---》单元格对象的获取,加上value即可获取单元格的值
# print(sheet.cell(row=1, column=1))
# print(sheet.cell(row=1, column=1).value)
# 4.示例,1获取1,8之间的每隔一行获取一个数据,打印出单元格的内容信息
# for line in range(1,8,2):
# print(line,sheet.cell(row=line,column=2).value)
# 5.示例2获取1,8之间的每隔一行获取一个数据,打印出单元格的内容信息
#获取表格中最大表格的行数数字
# line_max=sheet.get_highest_row() #废弃
# line_max=sheet.get_highest_column() #废弃
# print("max.....")
# print(sheet.max_row) # 单元格最大行
# print(sheet.max_column) # 单元格 最大列
"""
excel表格读取数据的步骤:
数据类型。
1.导入 openpyxl 模块。
2.调用 openpyxl.load_workbook()函数。
3.取得 Workbook 对象。
4.调用 get_active_sheet()或 get_sheet_by_name()工作簿方法。
5.取得 Worksheet 对象。
6.使用索引或工作表的 cell()方法,带上 row 和 column 关键字参数。
7.取得 Cell 对象。
8.读取 Cell 对象的 value 属性。
"""
def lab1():
"""
可以将 Worksheet 对象切片,取得电子表格中一行、一列或一个矩形区域中的所有
Cell 对象。然后可以循环遍历这个切片中的所有单元格
我们使用两个 for 循环。外层 for 循环遍历
这个切片中的每一行。然后针对每一行,内层 for 循环遍历该行中的每个单元格
:return:
"""
wb = openpyxl.load_workbook("民政部全国编号.xlsx")
sheet = wb['Sheet2']
data1=tuple(sheet['A1':'D4']) # 以元组的形式显示数据
print(data1)
print("__________")
for rowcell in sheet['A1':'D4']: # A1--->d4 是表格中的数据范围
for cellobj in rowcell:
print(cellobj.coordinate,cellobj.value,end="") # 打印单元格的坐标coordinate,单元格的值cellobj.value,end=""同一行的数据不换行
print() #打印每一行数据后,换行
print("---END OF ROW---")
def lab2():
"""
利用 Worksheet 对象的 rows 属性,可以得到一个元组构成的元组。内部的每个元
组都代表 1 行,包含该行中的 Cell 对象。columns 属性也会给你一个元组构成的元组,
内部的每个元组都包含 1 列中的 Cell 对象。
要访问一个特定的元组,可以利用它在大的元组中的下标。例如,要得到代表 B
列的元组,可以用 sheet.columns[1]。要得到代表 A 列的元组,可以用 sheet.columns[0]。
在得到了代表行或列的元组后,可以循环遍历它的对象,打印出它们的值
"""
wb = openpyxl.load_workbook("民政部全国编号.xlsx")
sheet = wb['Sheet2']
data1=tuple(sheet['A1':'D4']) # 以元组的形式显示数据
print(data1)
print("__________")
allcolumns=sheet.columns # 以exel表格中的列为基本单元信息,excel表格的每列,都是一个元组,列出所有列
print("+++++++++++++column+---------------")
for fieldobj in allcolumns:
# print(fieldobj)
for cellobj in fieldobj:
print(cellobj.value) # 列出每个单元格数据
print("fild.....")
print("+++++++++++++row---------------")
allrows = sheet.rows #获取所有行的元组
for rowsobj in allrows:
# print(fieldobj)
for cellobj in rowsobj:
print(cellobj.value) # 列出每个单元格数据
print("column.....")
if __name__ == '__main__':
# lab1() #范围获取excel表格中的数据
lab2() # sheet.columns,sheet.rows 获取设备的所有行-一个大的元组,里面都是每行一个小元组,所有列同样通行