python - 如何在输出之前自动过滤 Excel 工作表

标签 python pandas

我正在为一个脚本创建函数,该脚本从 api 获取数据,该 api 会将数据帧输出到 Excel 工作表。我需要自动过滤(作为可选参数)。

我快完成了,但不断收到属性错误,解释如下“工作表”对象没有属性“自动过滤器”

这是我一直在尝试的代码

def generate_xls(df, file_name, sheet_name, column_names=None, auto_filter=True):

    if column_names != None:
        df.columns = column_names

    print("appending the data in order...")   

    print("\nCreating excel-file")

    writer = pd.ExcelWriter(file_name + '.xls')    

    df.to_excel(writer,sheet_name,index=False)

    if auto_filter == True:
        for worksheet in writer.sheets.values():  
            worksheet.autofilter(df.columns)            

    writer.save()
    print("Excel-file generated.")

它在没有自动过滤的情况下工作得很好,但拥有它对我来说确实很重要,因为还有其他人可能需要它。任何建议都会很棒!

最佳答案

感谢您的意见。我在 writer 对象中使用 pandas 和 xlsxwriter 引擎解决了问题:

    if auto_filter == True:
        for worksheet in writer.sheets.values():
            row_count = len(df.index)
            column_count = len(df.columns)
            worksheet.autofilter(0, 0, row_count-1, column_count-1)                                
    writer.save()
    print("Excel-file generated.")

关于python - 如何在输出之前自动过滤 Excel 工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58100181/

相关文章:

Python 字典到 Pandas 数据框

python - python向mysql插入中文字符时出现UnicodeEncodeError

python - 使用 matplotlib 从 TeX 创建数学表达式的图像

python - 我需要什么下载文件才能获取适用于 Python 3.2 的 PyODBC 3.1.1?

python - 为什么split的结果中有一个 "array"? (Python)

json - 使用 Pandas .to_sql 将 JSON 列写入 Postgres

python - 使用 pandas 从 xml 获取数据

python - 替换 () 和正则表达式无法更新空白单元格

python csv register_dialect

python - pandas:来自 dict 的数据帧,带有逗号分隔值