Как редактировать Excel (xlsx и xlsm) в Python - PullRequest
0 голосов
/ 25 марта 2019

Я очень плохо знаком с Python, и это мой первый проект на Python.

То, что я делаю, это ... 1. Получил данные с сервера Sql 2. Поместите данные в предопределенный шаблон Excel (конкретный лист). 3. Если на этом листе есть какие-либо данные, то их следует заменить, и на листе должно остаться только имя столбца. 3. Другой лист в шаблоне Excel содержит сводное представление данных из шага 2. 4. Мне нужно обновить этот свод новыми данными из sheet1. 5. ни одна строка в листе 1 не может быть изменена в зависимости от данных из базы данных.

У меня все в порядке с шагом 1, но я не могу выполнить операции Excel.

Я пробовал openpyxl, но не смог понять это. https://openpyxl.readthedocs.io/en/stable/

код:

from openpyxl import load_workbook
wb2 = load_workbook('CnA_Rec.xlsx')
print (wb2.sheetnames)

rawsheet = wb2.get_sheet_by_name('RawData')

print (rawsheet.cell_range)

Ошибка с кодом выше:

AttributeError: 'Worksheet' object has no attribute 'cell_range'

Я могу получить доступ к отдельной ячейке, но не к диапазону. Мне нужно выбрать текущий диапазон и заменить его новыми данными.

ссылка: https://openpyxl.readthedocs.io/en/stable/api/openpyxl.worksheet.cell_range.html

Может ли кто-нибудь указать мне на какой-нибудь онлайн-пример для того же или любого другого примера кода для этого.

1 Ответ

0 голосов
/ 25 марта 2019

Итак, отпустим это с openpyxl.Где твоя проблема?Это очень простой старт.Мы можем изменить этот скрипт во время процесса.

import openpyxl

wb = openpyxl.load_workbook('hello_world.xlsx')
# do magic with openpyxl here and save
ws = wb.worksheets[0]
ws.cell(row=1, column=3).value = 'Hello'   # example
ws.cell(row=2, column=3).value = 'World'   # example

for i in range(2,20):
    ws.cell(row=i,column=1).value = 'Row:' + str(i)

data = [ws.cell(row=i,column=1).value for i in range(1,11)]
print(data)

wb.save('hello_world.xlsx')
...