有什么方法可以使用openpyxl获取. xlsx表中的行数和列数吗?在xlrd中
sheet.ncols sheet.nrows
将给出列和行计数。openpyxl中有这样的方法吗?
b09cbbtk1#
给定一个变量sheet,可以通过以下方式之一确定行数和列数:
sheet
rows = sheet.max_rows columns = sheet.max_column
rows = sheet.nrows columns = sheet.ncols
rows = sheet.max_row columns = sheet.max_column
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
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
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
8zzbczxx5#
使用Pandas获取所有工作表行和列计数的解决方案。它使用df.shape来获取计数。
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('-----------------------------')
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)
pkmbmrz77#
当我需要non-empty cols的数量时,我发现更有效的方法是小心,它给出了NON-EMPTY列的数量,而不是列的总数。当我说更高效时,我指的是实现目标的最简单方法,但不是最快的方法(我没有测试执行速度)。在下面的例子中,sheet是openpyxl.worksheet.worksheet.Worksheet的instance:
openpyxl.worksheet.worksheet.Worksheet
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,它被认为是空的。
7条答案
按热度按时间b09cbbtk1#
给定一个变量
sheet
,可以通过以下方式之一确定行数和列数:Version ~= 3.0.5语法
1.x.x版本语法
0.x.x版本语法
hrysbysz2#
工作表具有以下方法:'dim_colmax',' dim_colmin','dim_rowmax',' dim_rowmin '
下面是一个小例子:
jecbmhm33#
这就是逻辑
jq6vz3qz4#
建立在达尼的解决方案上,没有足够的声誉在那里评论。我通过添加一个手动控件来编辑代码,以减少搜索所消耗的时间
8zzbczxx5#
使用Pandas获取所有工作表行和列计数的解决方案。它使用
df.shape
来获取计数。snvhrwxg6#
试试看
pkmbmrz77#
当我需要non-empty cols的数量时,我发现更有效的方法是小心,它给出了NON-EMPTY列的数量,而不是列的总数。当我说更高效时,我指的是实现目标的最简单方法,但不是最快的方法(我没有测试执行速度)。在下面的例子中,
sheet
是openpyxl.worksheet.worksheet.Worksheet
的instance:如果我需要非空行的数量,我这样做:
请注意,最后一条指令可能会失败:如果一行只有0,它被认为是空的。