核心代码如下:
# 得到真实的行
def get_real_max_row(sheet):
i=sheet.max_row
real_max_row = 0
while i > 0:
# print('i='+str(i))
# print('sheet[i]'+str(sheet[i]))
# for y in sheet[i]:
# print(y)
# print(str(y.value))
row_dict = {i.value for i in sheet[i]}
#得到每一行的值,如果为空,那么,i.value就是None
#因为添加的数据字段所以,在每一行中,for循环找到所有的列,
#看每一列是否都是一个None如果都是,那么这一行就是空行
#最大行减1 循环下去就会得到最终的行
#print('row_dict'+str(sheet[i]))
if row_dict == {None}:
i = i-1
else:
real_max_row = i
break
return real_max_row
得到真实的列,中间如果有空列也算一列
def get_real_max_colum(sheet):
y=sheet.max_column
real_max_colum = 0
while y > 0:
#循环行得到列的数据字典,如果列都为空就是{None} 否则就是空列
row_dict = {sheet.cell(i, y).value for i in range(1,sheet.max_row+1)}
#print(row_dict)
if row_dict == {None}:
y = y-1
else:
real_max_colum=y
break
return real_max_colum
全部代码如下:
import openpyxl
import os
import sys
#得到绝对路径_也就是pyhon文件所在的路径-这样后期打包成exe执行文件
#不会找不到路径
parent = os.path.dirname(os.path.realpath(sys.argv[0]))
#拼接路径
filenames = os.listdir(parent)
# 得到真实的行
def get_real_max_row(sheet):
i=sheet.max_row
real_max_row = 0
while i > 0:
# print('i='+str(i))
# print('sheet[i]'+str(sheet[i]))
# for y in sheet[i]:
# print(y)
# print(str(y.value))
row_dict = {i.value for i in sheet[i]}
#得到每一行的值,如果为空,那么,i.value就是None
#因为添加的数据字段所以,在每一行中,for循环找到所有的列,
#看每一列是否都是一个None如果都是,那么这一行就是空行
#最大行减1 循环下去就会得到最终的行
#print('row_dict'+str(sheet[i]))
if row_dict == {None}:
i = i-1
else:
real_max_row = i
break
return real_max_row
# 得到真实的列,中间如果有空列也算一列
def get_real_max_colum(sheet):
y=sheet.max_column
real_max_colum = 0
while y > 0:
#循环行得到列的数据字典,如果列都为空就是{None} 否则就是空列
row_dict = {sheet.cell(i, y).value for i in range(1,sheet.max_row+1)}
#print(row_dict)
if row_dict == {None}:
y = y-1
else:
real_max_colum=y
break
return real_max_colum
if __name__ == '__main__':
for filename in filenames:
if filename.endswith('.xlsx'):
wookbook = openpyxl.load_workbook(parent + '' + filename)
active_sheet = wookbook.active
print("最大行=" + str(active_sheet.max_row))
print('最大列=' + str(active_sheet.max_column))
print('get_real_max_row=' + str(get_real_max_row(active_sheet)))
print('get_real_max_colum=' + str(get_real_max_colum(active_sheet)))
希望对你有帮助!欢迎收藏和转发加关注!
关不关注不重要,重要的是对你有用就行!
页面更新:2024-06-01
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号