Python OpenPyxl列数据过滤器

Python OpenPyxl列数据过滤器,python,excel,openpyxl,Python,Excel,Openpyxl,我正在尝试对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]

我正在尝试对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(这很好) 然后将数据筛选器应用于具有特定VAL的列(在我的示例中,我只想筛选得到“501”或“502”的行)

如果取消注释,我可以将数据过滤器添加到列中

#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,我会按照我的想法使用第1列。

将您的解决方案作为答案,然后将其检查为“应用答案”