Я пытаюсь автоматизировать создание сводной таблицы с помощью 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
Программы на Python
-
Anonymous
1730266554
Anonymous
Я пытаюсь автоматизировать создание сводной таблицы с помощью 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)
Подробнее здесь: [url]https://stackoverflow.com/questions/79137703/create-a-pivot-table-using-xlwings[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия