【问题标题】:Sorting a pivot table with win32com using Python使用 Python 使用 win32com 对数据透视表进行排序
【发布时间】:2022-11-14 00:16:55
【问题描述】:

我想对使用带有 Python 的 win32com 模块创建的 Excel 数据透视表进行排序。

据我了解,我应该使用函数 AutoSort() 并且根据官方documentation,有四个字段,其中两个是可选的。因此,我只指定“订单”和“字段”字段。

AutoSort(Order=1, Field="Tot Converted Amount Due")

但是,当我运行以下代码行时,出现错误。

    wb.Sheets("pivot_table").PivotTables("pivot_table").PivotFields("Tot Converted Amount Due").AutoSort(Order=1, Field="Tot Converted Amount Due")

错误:

def AutoSort(self, Order=defaultNamedNotOptArg, Field=defaultNamedNotOptArg, PivotLine=defaultNamedOptArg, CustomSubtotal=defaultNamedOptArg):
---> 44         return self._oleobj_.InvokeTypes(1514, LCID, 1, (24, 0), ((3, 1), (8, 1), (12, 17), (12, 17)),Order
     45             , Field, PivotLine, CustomSubtotal)
     46 

com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2146827284), None)

我究竟做错了什么?

我真的很感激任何投入或帮助。谢谢!

【问题讨论】:

    标签: python excel pivot-table win32com


    【解决方案1】:

    我不知道这是否是您的情况,但您需要在.PivotFields("""Row field""") 中传递一个行字段。

    【讨论】:

      【解决方案2】:

      您是否尝试过使用ascending=true 进行排序?如https://stackoverflow.com/a/60778942/18247317

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-07
        • 1970-01-01
        • 1970-01-01
        • 2022-10-25
        相关资源
        最近更新 更多