使用 Python 在 excel 中创建视觉过滤器 - openpyxl
Create a visual filter in excel using Python - openpyxl
我正在尝试以编程方式在 excel 中创建过滤器,因此当使用 openpyxl 创建 sheet 时,每个 sheet 的第一行已经设置为 be一个过滤器。我查看了文档,但我能找到的只是如何过滤数据而不是创建过滤器。
当前的 openpyxl 实现甚至可能吗?
openpyxl 支持过滤器。请参阅 worksheet.filters
模块和相关测试。
您可以执行的操作示例:
ws.auto_filter.ref = 'C1:G9'
将其复制并粘贴到 .py 文件中,然后 运行。
import pandas as pd
import numpy as np
# Here is an example dataframe
df_example = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
# Create xlsx file
filepath = 'mytempfile.xlsx'
with pd.ExcelWriter(filepath, engine='xlsxwriter') as writer:
df_example.to_excel(writer, sheet_name='Sheet1',index=False)
# Add filter feature to first row
import openpyxl
xfile = openpyxl.load_workbook(filepath)
sheet = xfile.get_sheet_by_name('Sheet1')
maxcolumnletter = openpyxl.utils.get_column_letter(sheet.max_column)
sheet.auto_filter.ref = 'A1:'+maxcolumnletter+str(len(sheet['A']))
# Save the file
xfile.save(filepath)
print 'your file:',filepath
我正在尝试以编程方式在 excel 中创建过滤器,因此当使用 openpyxl 创建 sheet 时,每个 sheet 的第一行已经设置为 be一个过滤器。我查看了文档,但我能找到的只是如何过滤数据而不是创建过滤器。
当前的 openpyxl 实现甚至可能吗?
openpyxl 支持过滤器。请参阅 worksheet.filters
模块和相关测试。
您可以执行的操作示例:
ws.auto_filter.ref = 'C1:G9'
将其复制并粘贴到 .py 文件中,然后 运行。
import pandas as pd
import numpy as np
# Here is an example dataframe
df_example = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
# Create xlsx file
filepath = 'mytempfile.xlsx'
with pd.ExcelWriter(filepath, engine='xlsxwriter') as writer:
df_example.to_excel(writer, sheet_name='Sheet1',index=False)
# Add filter feature to first row
import openpyxl
xfile = openpyxl.load_workbook(filepath)
sheet = xfile.get_sheet_by_name('Sheet1')
maxcolumnletter = openpyxl.utils.get_column_letter(sheet.max_column)
sheet.auto_filter.ref = 'A1:'+maxcolumnletter+str(len(sheet['A']))
# Save the file
xfile.save(filepath)
print 'your file:',filepath