Здравствуйте!
Да, это возможно сделать с помощью библиотеки `pandas` и `openpyxl` для работы с Excel-файлами. Сначала необходимо загрузить ваш Excel файл, затем добавить данные в нужное место и сохранить его как новый файл. Однако стоит отметить, что библиотека `pandas` не поддерживает сохранение всех стилей ячеек. Тем не менее, если вам нужно только вставить строки без изменения стилей, вы можете сделать это следующим образом:
1. Установите необходимые библиотеки, если они еще не установлены:
```sh
pip install pandas openpyxl
```
2. Используйте следующий пример кода для вставки новых строк после 5-й строки:
```python
import pandas as pd
# Считываем существующий Excel файл
file_path = 'path_to_your_file.xlsx'
df = pd.read_excel(file_path, sheet_name='Sheet1')
# Данные, которые вы хотите вставить
new_data = pd.DataFrame({
'Column1': ['New Data 1', 'New Data 2'],
'Column2': ['Value 1', 'Value 2'],
})
# Вставляем новые строки после 5-й строки
# Здесь используем 5, так как индексация начинается с 0
df = pd.concat([df.iloc[:5], new_data, df.iloc[5:]]).reset_index(drop=True)
# Сохраняем в новый Excel файл
new_file_path = 'new_file_with_inserted_rows.xlsx'
df.to_excel(new_file_path, index=False, sheet_name='Sheet1')
```
Этот код:
- Читает существующий Excel файл.
- Создает новый DataFrame с новыми данными.
- Вставляет новые строки после 5-й строки.
- Сохраняет результат в новый файл Excel.
Обратите внимание, что в результате этот код не сохраняет стили (форматы, шрифты и т. д.), так как библиотека `pandas` это не поддерживает.
Если вам необходимо сохранить стили, то можно использовать библиотеку `openpyxl` для работы с более сложными операциями на уровне ячеек и форматирования. Вот пример того, как можно использовать `openpyxl` для вставки строк с сохранением стилей:
```python
from openpyxl import load_workbook
# Загружаем рабочую книгу
file_path = 'path_to_your_file.xlsx'
wb = load_workbook(file_path)
ws = wb.active
# Данные, которые вы хотите вставить
new_data = [
['New Data 1', 'Value 1'],
['New Data 2', 'Value 2'],
]
# Вставляем новые строки после 5-й строки
for row in new_data:
ws.insert_rows(6) # Вставляем строку на 6-ом месте (после 5-й строки)
for col_num, value in enumerate(row, start=1):
ws.cell(row=6, column=col_num, value=value)
# Сохраняем изменения в новый файл
new_file_path = 'new_file_with_inserted_rows.xlsx'
wb.save(new_file_path)
```
Этот код вставит новые строки и сохранит стили, так как `openpyxl` позволяет работать с ячейками на более низком уровне.
Надеюсь, это поможет вам! Если у вас есть дополнительные вопросы, пожалуйста, дайте знать.