如何修改OpenPyXL代码以跳过Excel表头行?
跳过OpenPyXL遍历中的第一行表头
嘿,这个需求很容易实现,给你两种实用的方法来跳过第一行表头:
方法1:使用iter_rows的min_row参数(推荐)
OpenPyXL的行号是从1开始计数的,我们可以直接在iter_rows()里指定min_row=2,让迭代从第二行开始,这样就自动跳过了第一行的表头。这种方法效率更高,尤其是处理大工作表时,不会额外占用内存:
wb_obj = openpyxl.load_workbook(path, data_only=True) worksheet = wb_obj['Sheet1'] # 这里推荐用这种方式获取工作表,替代已过时的get_sheet_by_name for row_cells in worksheet.iter_rows(min_row=2): for cell in row_cells: print('%s: cell.value=%s' % (cell, cell.value))
方法2:对行迭代器做切片
如果你更习惯用切片的思路,可以把iter_rows()返回的迭代器转换成列表,然后跳过第一个元素(对应第一行)。不过注意,这种方法会把所有行加载到内存里,不适合超大型工作表:
wb_obj = openpyxl.load_workbook(path, data_only=True) worksheet = wb_obj['Sheet1'] # 转成列表后取[1:],跳过索引0对应的第一行 for row_cells in list(worksheet.iter_rows())[1:]: for cell in row_cells: print('%s: cell.value=%s' % (cell, cell.value))
另外提个小建议:get_sheet_by_name在OpenPyXL的新版本中已经被标记为过时(deprecated)了,用wb_obj['Sheet1']这种索引方式获取工作表是更规范的写法哦。
内容的提问来源于stack exchange,提问作者Bilal Habib
相关产品推荐
相关产品推荐

