Python OpenPyxl列数据filter

我试图将数据filter应用到我的XLSX文件中的列B,这是我的代码:

import os import glob import csv from xlsxwriter.workbook import Workbook from openpyxl import load_workbook def convert_csv(): for csvfile in glob.glob(os.path.join('.', '*.csv')): newfile = csvfile[:-4] workbook = Workbook(newfile + '.xlsx') worksheet = workbook.add_worksheet() with open(csvfile, 'rb') as f: reader = csv.reader(f) for r, row in enumerate(reader): for c, col in enumerate(row): worksheet.write(r, c, col) workbook.close() wb = load_workbook('report.xlsx') ws = wb.active #ws.auto_filter.ref = 'B:B' ws.auto_filter.add_filter_column(1, '501', blank=False) print ws.auto_filter.filter_columns wb.save('outgoing.xlsx') 

我想要实现的是将CSV文件转换为XLSX(这是确定),然后将数据filter应用于具有特定值的列(在我的情况下,我只想过滤得到'501'或'502')的行。

如果我取消注释,我可以将数据filter添加到列

 #ws.auto_filter.ref = 'B:B' 

但是这个文件不能再被读取了。 我试图阅读OpenPyxl的文档,但没有多大帮助。

谢谢

– 解决了 ! – 几乎在那里,正确的代码是:

 ws.auto_filter.ref = 'B:B' ws.auto_filter.add_filter_column(0, ['501','502'], blank=False) 

列号(0)是我之前设置的引用的结果,因为我只设置了1列进行过滤(B:B),那么我正在处理0列,如果我将A:B设置为我​​的范围而且还想过滤B,我想用第一列。