excel 有什么方法可以使用openpyxl获取.xlsx表中的行数和列数吗?

0yg35tkg  于 2023-06-25  发布在  其他
关注(0)|答案(7)|浏览(191)

有什么方法可以使用openpyxl获取. xlsx表中的行数和列数吗?在xlrd中

sheet.ncols 
     sheet.nrows

将给出列和行计数。openpyxl中有这样的方法吗?

b09cbbtk

b09cbbtk1#

给定一个变量sheet,可以通过以下方式之一确定行数和列数:

Version ~= 3.0.5语法

rows = sheet.max_rows
columns = sheet.max_column

1.x.x版本语法

rows = sheet.nrows
columns = sheet.ncols

0.x.x版本语法

rows = sheet.max_row
columns = sheet.max_column
hrysbysz

hrysbysz2#

工作表具有以下方法:'dim_colmax',' dim_colmin','dim_rowmax',' dim_rowmin '
下面是一个小例子:

import pandas as pd

writer = pd.ExcelWriter("some_excel.xlsx", engine='xlsxwriter')

workbook  = writer.book
worksheet = writer.sheets[RESULTS_SHEET_NAME]

last_row = worksheet.dim_rowmax
jecbmhm3

jecbmhm33#

这就是逻辑

number_of_rows = sheet_obj.max_row
    last_row_index_with_data = 0
    
    while True:
        if sheet_obj.cell(number_of_rows, 3).value != None:
            last_row_index_with_data = number_of_rows
            break
        else:
            number_of_rows -= 1
jq6vz3qz

jq6vz3qz4#

建立在达尼的解决方案上,没有足够的声誉在那里评论。我通过添加一个手动控件来编辑代码,以减少搜索所消耗的时间

## iteration to find the last row with values in it
nrows = ws.max_row
if nrows > 1000:
    nrows = 1000

lastrow = 0
while True:
    if ws.cell(nrows, 3).value != None:
        lastrow = nrows
        break
    else:
        nrows -= 1
8zzbczxx

8zzbczxx5#

使用Pandas获取所有工作表行和列计数的解决方案。它使用df.shape来获取计数。

import pandas as pd
xl = pd.ExcelFile('file.xlsx')
sheetnames = xl.sheet_names  # get sheetnames
for sheet in sheetnames:
    df = xl.parse(sheet)
    dimensions = df.shape
    print('sheetname', ' --> ', sheet)
    print(f'row count on "{sheet}" is {dimensions[0]}')
    print(f'column count on "{sheet}" is {dimensions[1]}')
    print('-----------------------------')
snvhrwxg

snvhrwxg6#

试试看

import xlrd

location = ("Filelocation\filename.xlsx")
wb = xlrd.open_workbook(location)
s1 = wb.sheet_by_index(0)
s1.cell_value(0,0)                       #initializing cell from the cell position  

print(" No. of rows: ", s1.nrows)             
print(" No. of columns: ", s1.ncols)
pkmbmrz7

pkmbmrz77#

当我需要non-empty cols的数量时,我发现更有效的方法是小心,它给出了NON-EMPTY列的数量,而不是列的总数。当我说更高效时,我指的是实现目标的最简单方法,但不是最快的方法(我没有测试执行速度)。在下面的例子中,sheetopenpyxl.worksheet.worksheet.Worksheet的instance:

values = list(sheet.values) #values is a list of tuple of same len
nb_cols = len(values[0])

如果我需要非空行的数量,我这样做:

nb_lines = len([v for v in sheet.values if any(v)])

请注意,最后一条指令可能会失败:如果一行只有0,它被认为是空的。

相关问题