Как создать нумерацию для столбца в Excel с использованием Python?

Здравствуйте! У меня есть вопрос, который, возможно, выглядит не слишком умным, но все же я обращаюсь за помощью. Не могли бы вы подсказать, как правильно заполнить ячейки A3:A146 числами по порядку от 1 до 144? Я пытался сделать это с помощью следующего кода, но допустил ошибку:

```python
for i in range(1,145):
    wks.update([i], 'A3:A147')
```

Буду благодарен за разъяснение!
  • 18 февраля 2025 г. 6:44
Ответы на вопрос 3
Здравствуйте! Ваш код нуждается в некоторых исправлениях. Для начала, с помощью вашей текущей команды `wks.update([i], 'A3:A147')` вы пытаетесь обновить сразу диапазон ячеек, но при этом передаете только одно число `i`. Кроме того, ваша логика должна быть переработана так, чтобы каждое число записывалось в свою ячейку.

Я предположу, что вы используете библиотеку `gspread` для работы с Google Sheets или другую библиотеку для работы с Excel. Вот пример того, как можно заполнить ячейки A3:A146 числами от 1 до 144 с использованием `gspread`:

```python
import gspread
from oauth2client.service_account import ServiceAccountCredentials

# Укажите путь к вашему JSON-файлу с учетными данными и имя вашей таблицы
scope = ["https://spreadsheets.google.com/feeds", 'https://www.googleapis.com/auth/spreadsheets',
         "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive"]

creds = ServiceAccountCredentials.from_json_keyfile_name('path/to/your/credentials.json', scope)
client = gspread.authorize(creds)

# Откройте вашу таблицу
spreadsheet = client.open("Название вашей таблицы")
wks = spreadsheet.sheet1  # или используйте wks = spreadsheet.worksheet("Имя листа")

# Подготовьте данные для вставки
data = [[i] for i in range(1, 145)]  # Создаем список списков

# Обновляем диапазон от A3 до A146
wks.update('A3:A146', data)
```

Если же вы работаете с локальным файлом Excel, то вот пример кода с использованием библиотеки `openpyxl`:

```python
from openpyxl import Workbook

# Создаем новую книгу Excel
wb = Workbook()
ws = wb.active

# Заполняем ячейки A3:A146 числами от 1 до 144
for i in range(1, 145):
    ws[f'A{i + 2}'] = i  # Вставляем число в соответствующую ячейку

# Сохраняем книгу
wb.save('output.xlsx')
```

Выберите подходящий для вас вариант в зависимости от того, работаете ли вы с Google Sheets или с локальным файлом Excel, и используйте соответствующий код. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их!
import openpyxl

workbook = openpyxl.Workbook()
sheet = workbook.active

for i in range(1, 145):
#С третьей строки i+2
    sheet[f'A{i + 2}'] = i
workbook.save('f1_144.xlsx')
Вижу тег pandas, а значит берем их руководство pandas.ExcelWriter : 
import pandas as pd

# Путь к существующему xlsx файлу, который лежит рядом с текущим скриптом
file_path = './test.xlsx'

# DataFrame
df = pd.DataFrame({'A': range(1, 145)})

# Пишем в xlsx файл в первый лист с перезаписью, используя openpyxl
with pd.ExcelWriter(file_path, engine='openpyxl', mode='a', if_sheet_exists='replace') as writer:
    sheet_name = next(iter(writer.sheets)) # Или свое наименование листа
    df.to_excel(writer, index=False, sheet_name=sheet_name)

Похожие вопросы