execle 得到真实的行 和 真实的列方法汇总

核心代码如下:

execle真实的行:

# 得到真实的行
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

execel 真实的列:

 得到真实的列,中间如果有空列也算一列
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

标签:真实   空行   字段   字典   路径   后期   有用   也就是   核心   绝对路径   代码   文件   收藏   方法   数据   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top