首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >函数来查找数据的最后一行。

函数来查找数据的最后一行。
EN

Stack Overflow用户
提问于 2015-10-29 15:17:48
回答 8查看 28.5K关注 0票数 12

我正在试图找到包含数据的列中的最后一行。替换vba函数:LastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row

我正在尝试这样做,但这会将Excel中的所有行都拉进来。我怎么才能拿到最后一排。

代码语言:javascript
运行
复制
from xlwings import Workbook, Range
wb = Workbook()
print len(Range('A:A'))
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2018-11-01 13:31:53

综合上面的答案,您可以在一行中完成:

代码语言:javascript
运行
复制
wb.sheet.range(column + last cell value).Get End of section going up[non blank assuming the last cell is blank].row

示例代码:

代码语言:javascript
运行
复制
import xlwings as xw
from xlwings import Range, constants

wb = xw.Book(r'path.xlsx')
wb.sheets[0].range('A' + str(wb.sheets[0].cells.last_cell.row)).end('up').row
票数 14
EN

Stack Overflow用户

发布于 2016-09-14 11:39:28

--这与crazymachu的答案非常相似,它只是封装在一个函数中。从xlwing的0.9.0版本开始,您可以这样做:

代码语言:javascript
运行
复制
import xlwings as xw

def lastRow(idx, workbook, col=1):
    """ Find the last row in the worksheet that contains data.

    idx: Specifies the worksheet to select. Starts counting from zero.

    workbook: Specifies the workbook

    col: The column in which to look for the last cell containing data.
    """

    ws = workbook.sheets[idx]

    lwr_r_cell = ws.cells.last_cell      # lower right cell
    lwr_row = lwr_r_cell.row             # row of the lower right cell
    lwr_cell = ws.range((lwr_row, col))  # change to your specified column

    if lwr_cell.value is None:
        lwr_cell = lwr_cell.end('up')    # go up untill you hit a non-empty cell

    return lwr_cell.row

从直觉上看,该函数从找到工作簿中最极端的右下角单元开始.然后,它移动到所选列,然后向上移动,直到它到达第一个非空单元格。

票数 4
EN

Stack Overflow用户

发布于 2019-10-31 15:32:56

我们可以使用Range对象查找最后一行和/或最后一列:

代码语言:javascript
运行
复制
import xlwings as xw

# open raw data file
filename_read = 'data_raw.csv'
wb = xw.Book(filename_read)
sht = wb.sheets[0]

# find the numbers of columns and rows in the sheet
num_col = sht.range('A1').end('right').column
num_row = sht.range('A1').end('down').row

# collect data
content_list = sht.range((1,1),(num_row,num_col)).value
print(content_list)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33418119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档