【问题标题】:win32com raises error when trying to use ShowDetail in PivotField()win32com 在 PivotField() 中尝试使用 ShowDetail 时引发错误
【发布时间】:2017-05-18 16:28:25
【问题描述】:

我正在使用 python 脚本将新数据添加到 excel 文档中,然后在每次调用时使用这些数据构建数据透视表。

为了创建数据透视表,我使用 win32com 构建数据透视表,但由于数据集太大,我试图根据特定字段折叠表格。

应用时崩溃发生没有问题

ShowDetail = False

PivotTables("PivotTable1").PivotFields("DIRECTION").PivotItems("IN").ShowDetail = False

但由于数据集非常大,我试图为整个字段设置它,比如

 PivotTables("PivotTable1").PivotFields("DIRECTION").ShowDetail = False

引发错误

AttributeError: win32com.gen_py.unknown.PivotItems instance at 0x149903408  object has no attribute 'ShowDetail'

目前在 Anaconda 中使用 Python 3.6,预装了 pywin32 版本 220。

【问题讨论】:

    标签: excel python-3.x pywin32 win32com


    【解决方案1】:

    不确定这是否适合您,但我循环浏览了这些项目。我使用的是 Python 2.7,所以语法可能会有所不同。这是我使用的代码

    for item in PivotTables("PivotTable1").PivotFields("DIRECTION").PivotItems:
        item.ShowDetail = False
    

    【讨论】:

      【解决方案2】:

      尝试为 PivotItem 使用索引,对我有用:

      for item in range(1,PivotTables("PivotTable1").PivotFields("DIRECTION").PivotItems().Count+1): 
      PivotTables("PivotTable1").PivotFields("DIRECTION").PivotItems(item).ShowDetail = False
      

      【讨论】:

        【解决方案3】:

        尝试仅使用以下代码:

        wbs2.PivotTables(pvt_name).PivotFields('Years').ShowDetail = False
        

        它对我有用。

        【讨论】:

          猜你喜欢
          • 2020-12-21
          • 1970-01-01
          • 1970-01-01
          • 2022-07-21
          • 1970-01-01
          • 2017-11-11
          • 2017-04-23
          • 2021-07-15
          • 2013-03-12
          相关资源
          最近更新 更多