Я пытаюсь автоматизировать создание сводной таблицы с помощью xlwings. Вот созданный мною случайный фрагмент кода, который должен создавать сводную таблицу, но я получаю ошибку в строке, где создается сводная_таблица. Я не могу пройти дальше этой строки, и мой отладчик немедленно завершает работу.
Есть идеи, что происходит?
import xlwings as xw
from xlwings import constants
def get_pivot():
# Create a sample DataFrame
df = pd.DataFrame({
'Date': pd.date_range(start='2023-01-01', periods=100),
'Product': np.random.choice(['A', 'B', 'C'], 100),
'Region': np.random.choice(['North', 'South', 'East', 'West'], 100),
'Sales': np.random.randint(100, 1000, 100)
})
# Start an Excel application
wb = xw.Book(path_to_excel)
ws = wb.sheets["Sheet1"]
# Clear the contents of the worksheet
ws.clear_contents()
# Write the DataFrame to Excel
ws.range('A1').options(index=False).value = df
# Get the data range
data_range = ws.range('A1').expand()
# Create PivotCache
pivot_cache = wb.api.PivotCaches().Create(SourceType=constants.PivotTableSourceType.xlDatabase, SourceData=data_range.api) # , Version=constants.PivotTableVersionList.xlPivotTableVersion14)
pivot_table = pivot_cache.CreatePivotTable(TableDestination=ws.range('F2'), TableName='SalesPivot')
# Configure pivot table fields
pivot_table = ws.api.PivotTables("SalesPivot")
# Configure the pivot table fields
pivot_table.PivotFields('Date').Orientation = xw.constants.PivotFieldOrientation.xlRowField
pivot_table.PivotFields('Date').NumberFormat = "yyyy-mm-dd"
pivot_table.PivotFields('Product').Orientation = xw.constants.PivotFieldOrientation.xlColumnField
pivot_table.PivotFields('Region').Orientation = xw.constants.PivotFieldOrientation.xlPageField
pivot_table.PivotFields('Sales').Orientation = xw.constants.PivotFieldOrientation.xlDataField
# Set Data Field
sales_field = pivot_table.PivotFields('Sales')
sales_field.Orientation = xw.constants.PivotFieldOrientation.xlDataField
sales_field.Function = xw.constants.ConsolidationFunction.xlSum
# Save the workbook
print("Pivot table created successfully!")
if __name__ == '__main__':
xw.serve()
Я выполнял отладку с помощью отладчика xlwings, код всегда выходит из отладчика каждый раз, когда обрабатывается сводная таблица строк.
Я изменил строку, в которой я добавлен
Version=constants.PivotTableVersionList.xlPivotTableVersion14
но это тоже не работает:
pivot_cache = wb.api.PivotCaches().Create(SourceType=constants.PivotTableSourceType.xlDatabase, SourceData=data_range.api, Version=constants.PivotTableVersionList.xlPivotTableVersion14)
Подробнее здесь: https://stackoverflow.com/questions/791 ... ng-xlwings
Создайте сводную таблицу с помощью xlwings ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Создайте сводную таблицу и добавьте дополнительные столбцы из другого фрейма данных.
Anonymous » » в форуме Python - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как добавить фильтры столбцов в сводную таблицу с помощью пакета FreeSpire.Xls в .net C#
Anonymous » » в форуме C# - 0 Ответы
- 113 Просмотры
-
Последнее сообщение Anonymous
-