要选中第一部分,可以通过以下步骤:

  1. 找到第一行的起始位置:可以通过循环遍历每一行,判断该行是否为空行,直到找到第一个非空行为止。可以使用Range对象的Value属性来获取每一行的值,并判断是否为空。
start_row = 1
while worksheet.Cells(start_row, 1).Value is None:
    start_row += 1
  1. 找到最后一行的结束位置:同样通过循环遍历每一行,判断该行是否为空行,直到找到第一个空行为止。可以使用Range对象的Value属性来获取每一行的值,并判断是否为空。
end_row = start_row
while worksheet.Cells(end_row, 1).Value is not None:
    end_row += 1
  1. 选中第一部分的范围:使用Range对象的Range方法,传入起始行和列的索引以及结束行和列的索引,来选中第一部分的范围。
first_part_range = worksheet.Range(worksheet.Cells(start_row, 1), worksheet.Cells(end_row-1, worksheet.UsedRange.Columns.Count))

完整代码如下:

import win32com.client

# load Excel file and get worksheet object
excel_app = win32com.client.Dispatch("Excel.Application")
workbook = excel_app.Workbooks.Open(Filename="C:\\Users\\lucas.liu\\OneDrive - insidemedia.net\\Desktop\\code\\Red Search Report with spd May'23", ReadOnly=1)
worksheet = workbook.Worksheets("SPU Ranking 图表- May'23")
excel_app.Visible = True

# find start row of the first part
start_row = 1
while worksheet.Cells(start_row, 1).Value is None:
    start_row += 1

# find end row of the first part
end_row = start_row
while worksheet.Cells(end_row, 1).Value is not None:
    end_row += 1

# select the range of the first part
first_part_range = worksheet.Range(worksheet.Cells(start_row, 1), worksheet.Cells(end_row-1, worksheet.UsedRange.Columns.Count))

这样就可以获取到第一部分的范围first_part_range,你可以根据需要进行进一步处理

已经用如下代码读取了excel的一个sheet# load Excel file and get worksheet objectexcel_app = win32comclientDispatchExcelApplicationworkbook = excel_appWorkbooksOpenFilename=CUserslucasliuOneDrive - insidemedianetDesk

原文地址: https://www.cveoy.top/t/topic/iqLR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录