Хочу сделать вывод из excel в word только первой строки. Вроде разобрался как диапазон поставить, но вывести не получается, как это в цикле указать?

Рейтинг: 0Ответов: 1Опубликовано: 27.07.2023

то что в коментах, это попытки сделать по разному

import openpyxl
import aspose.words as aw

book = openpyxl.open("NCR_2022_2.xlsx", read_only=True)

wb = openpyxl.reader.excel.load_workbook(filename = "NCR_2022_2.xlsx")
#print(wb.sheetnames)
wb.active = 0
sheet = wb.active

#print(sheet['A1'].value)

doc = aw.Document()

# create a document builder object
builder = aw.DocumentBuilder(doc)
#cells = sheet['A1': 'BB1']
#builder.write(sheet['1'].value)
builder.list_format.apply_number_default()
#for column in range(0, sheet.max_column):
for i in range(1,2):
    builder.write(sheet['A' + str(i)].value)
    builder.write(" \n")

Ответы

▲ 0Принят

Не совсем понятно что у вас не получается

import openpyxl
import aspose.words as aw

wb = openpyxl.open("NCR_2022_2.xlsx", read_only=True)
sheet = wb.active

doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.list_format.apply_number_default()

for cell in sheet['1']:
    builder.write(cell.value)
    builder.write(" \n")

doc.save("output.docx")

Тут не нужен какой-то мудрёный цикл с range. Просто sheet['x'], где х это номер строки, заберёт всю. Нумерация с единицы начинается.