Я пытаюсь отправить выбранные значения из радиокнопок в .docx
файл
, импортируя то, что мне нужно, фокус на docx
import tkinter as tk
from docx import Document
main = tk.Tk()
это мои варианты, которые мне нужныПоместите в текстовый документ слева от таблицы, они выступают в качестве вопросов в опросе.
info = ["option 1", "option 2", "option 3", "option 4"
]
Здесь я размещаю радиокнопки Yes, No & N/A
, которые являются ответами на варианты слева (списокinfo
выше), а также Label
для представления вариантов или, другими словами, вопросов ..
vars = []
for idx,i in enumerate(info):
var = tk.IntVar(value=0)
vars.append(var)
lblOption = tk.Label(main,text=i)
btnYes = tk.Radiobutton(main, text="Yes", variable=var, value=2)
btnNo = tk.Radiobutton(main, text="No", variable=var, value=1)
btnNa = tk.Radiobutton(main, text="N/A", variable=var,value=0)
lblOption.grid(column=0,row=idx)
btnYes.grid(column=1,row=idx)
btnNo.grid(column=2,row=idx)
btnNa.grid(column=3,row=idx)
Вот моя функция: создание документа и сохранение - это самая простая часть. Моя проблема в том, что я запутался в создании стола, который будет иметь;Опции слева (от info
) вверху - это заголовки (см. RadioButtons yes, no, & N/a
). И выбранные данные, например, если для option 1
я выбрал Нет, то сохраните данные в файл .docx
с выбранным (см. Пример внизу страницы в разделе Желаемый вывод).
def send():
document = Document()
section = document.sections[0]
#add table
table = document.add_table(1, 4)
#style table
table.style = 'Table Grid'
#table data retrived from Radiobuttons
items = vars.get()
#populate header row
heading_cells = table.rows[0].cells
heading_cells[0].text = "Options"
heading_cells[1].text = btnYes.cget("text")
heading_cells[2].text = btnNo.cget("text")
heading_cells[3].text = btnNa.cget("text")
for item in items:
cells = table.add_row().cells
cells[0].text = #Options
cells[1].text = #Yes values
cells[2].text = #No values
cells[3].text = #N/A values
#save doc
document.save("test.docx")
#button to send data to docx file
btn = tk.Button(main, text="Send to File", command= send)
btn.grid()
main.mainloop()
это то, что он открывает:
Вот требуемый вывод:
Число 1
представляет выбранные элементы из приложения tkinter. Но выясню, как изменить его на галочку.
Я немного запутался, где я, я новичок в использовании docx .. пытался прочитать документацию .. издесь я вырыл себе дыру.