Python OpenPyxl列数据过滤器
我正在尝试对XLSX文件中的B列应用数据筛选器, 这是我的代码: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]
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列。将您的解决方案作为答案,然后将其检查为“应用答案”