龙空技术网

python 获取excel真实行列方法的

北漂程序员之路 93

前言:

此时朋友们对“python求excel的行和列”可能比较关切,各位老铁们都想要了解一些“python求excel的行和列”的相关知识。那么小编同时在网摘上搜集了一些关于“python求excel的行和列””的相关文章,希望大家能喜欢,我们一起来学习一下吧!

import openpyxlimport osimport 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_columif   __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)))

标签: #python求excel的行和列