Table Python docx
Table in Python docx
table
中所有单元格的打印星期日
docu = docx.Document()
daylist = ["monday", "tuesday", "wednesday",
"thursday", "friday", "saturday", "sunday"]
num_of_days = int(input('enter days'))
num_of_lectures = int(input('lecture number'))
timetable = docu.add_table(rows=num_of_days, cols=num_of_lectures)
tablecell = timetable.cell(0, 1)
tablerow = timetable.rows[1]
for day in daylist:
for tablerow in timetable.rows:
for tablecell in tablerow.cells:
tablecell.text = day
docu.save('timetable.docx')
如果我这样做,它会在每个单元格中打印整个列表。
docu = docx.Document()
daylist = ["monday", "tuesday", "wednesday",
"thursday", "friday", "saturday", "sunday"]
num_of_days = int(input('enter days'))
num_of_lectures = int(input('lecture number'))
timetable = docu.add_table(rows=num_of_days, cols=num_of_lectures)
tablecell = timetable.cell(0, 1)
tablerow = timetable.rows[1]
for tablerow in timetable.rows:
for tablecell in tablerow.cells:
tablecell.text = (day for day in daylist)
docu.save('timetable.docx')
我试过了
daylist = ["monday", "tuesday", "wednesday",
"thursday", "friday", "saturday", "sunday"]
num_of_days = int(input('enter days'))
num_of_lectures = int(input('lecture number'))
timetable = docu.add_table(rows=num_of_days, cols=num_of_lectures)
tablerow = timetable.rows[1]
i = 0
for cells in timetable.rows:
i += 1
tablecell = timetable.cell(i, 0)
cells.text = (day for day in daylist)
docu.save('timetables.docx')
我只需要顶行的 daylist
列表中的一个字符串。 Python docx 文档很难理解。
import itertools
tablerow = timetable.rows[0]
for (day, cell) in zip(itertools.cycle(daylist), tablerow):
cell.text = day
Python 代码忠实地执行您要求它执行的操作。也许您对迭代的工作原理感到困惑。
我假设您想要这样的结果:
+--------+---------+-----------+
| Monday | Tuesday | Wednesday |
+--------+---------+-----------+
| | | |
+--------+---------+-----------+
| | | |
+--------+---------+-----------+
这可以通过多种方式完成,但像这样的方法就可以了:
cells = table.rows[0].cells
for i in num_of_days:
cells[i].text = daylist[i]
或者更好:
for i, cell in enumerate(table.rows[0].cells):
cell.text = daylist[i]
稍微漂亮一点的是:
for cell, title in zip(table.rows[0].cells, daylist):
cell.text = title
table
中所有单元格的打印星期日docu = docx.Document()
daylist = ["monday", "tuesday", "wednesday",
"thursday", "friday", "saturday", "sunday"]
num_of_days = int(input('enter days'))
num_of_lectures = int(input('lecture number'))
timetable = docu.add_table(rows=num_of_days, cols=num_of_lectures)
tablecell = timetable.cell(0, 1)
tablerow = timetable.rows[1]
for day in daylist:
for tablerow in timetable.rows:
for tablecell in tablerow.cells:
tablecell.text = day
docu.save('timetable.docx')
如果我这样做,它会在每个单元格中打印整个列表。
docu = docx.Document()
daylist = ["monday", "tuesday", "wednesday",
"thursday", "friday", "saturday", "sunday"]
num_of_days = int(input('enter days'))
num_of_lectures = int(input('lecture number'))
timetable = docu.add_table(rows=num_of_days, cols=num_of_lectures)
tablecell = timetable.cell(0, 1)
tablerow = timetable.rows[1]
for tablerow in timetable.rows:
for tablecell in tablerow.cells:
tablecell.text = (day for day in daylist)
docu.save('timetable.docx')
我试过了
daylist = ["monday", "tuesday", "wednesday",
"thursday", "friday", "saturday", "sunday"]
num_of_days = int(input('enter days'))
num_of_lectures = int(input('lecture number'))
timetable = docu.add_table(rows=num_of_days, cols=num_of_lectures)
tablerow = timetable.rows[1]
i = 0
for cells in timetable.rows:
i += 1
tablecell = timetable.cell(i, 0)
cells.text = (day for day in daylist)
docu.save('timetables.docx')
我只需要顶行的 daylist
列表中的一个字符串。 Python docx 文档很难理解。
import itertools
tablerow = timetable.rows[0]
for (day, cell) in zip(itertools.cycle(daylist), tablerow):
cell.text = day
Python 代码忠实地执行您要求它执行的操作。也许您对迭代的工作原理感到困惑。
我假设您想要这样的结果:
+--------+---------+-----------+
| Monday | Tuesday | Wednesday |
+--------+---------+-----------+
| | | |
+--------+---------+-----------+
| | | |
+--------+---------+-----------+
这可以通过多种方式完成,但像这样的方法就可以了:
cells = table.rows[0].cells
for i in num_of_days:
cells[i].text = daylist[i]
或者更好:
for i, cell in enumerate(table.rows[0].cells):
cell.text = daylist[i]
稍微漂亮一点的是:
for cell, title in zip(table.rows[0].cells, daylist):
cell.text = title