python xlsxwriter根据行数据写入单元格

标签 python excel row xlsxwriter

我有Python字典:

student_age = {'bala':20,'raju':21}
student_id = {'bala':289,'raju':567} 

还有另外十个类似的字典,其键为学生姓名,值不同的字段。

预期的 Excel 结果: enter image description here

而不是

worksheet.write(0,2,20)

我想根据学生姓名进行书写,例如 write("bala"-> "age",20)

更新的代码:

import xlsxwriter
workbook = xlsxwriter.Workbook('student_data.xlsx')
worksheet = workbook.add_worksheet()

student_age={'bala':20,'raju':21,'ram':22}
student_id={'bala':289,'ram':567,'raju':654}
students = student_id.keys()
print(len(student_age.keys()))
fields = [student_age, student_id] # add other dicts here...

for row, student in enumerate(students):
    worksheet.write(row, 0, student) # name column
    for col, student_data in enumerate(fields):
        col = col + 1
        worksheet.write(row, col, student_data[student])
workbook.close()

上面的代码工作正常,但存在以下争议:

  1. 输出从第 0 行第 0 列开始,但我想要第 1 行的标题并需要第 1 行的输出
  2. 如果student_id键是20,并且我有一本只有15个学生的字典,如何将这些项目留空而不出错并遍历它?

最佳答案

您可以简单地将所有 Python 字典添加到一个列表中,这样您就可以为每个学生迭代它们,以填充每一行的每一列。像这样的事情:

已更新以解决 OP 的评论

对于#1,只需将标题写入第一行,然后将其他行偏移一个

对于#2,您可以简单地利用 dict.get()如果 id 不在该字典中,则使用 [] 表示法来分配默认值:

import xlsxwriter
workbook = xlsxwriter.Workbook('student_data.xlsx')
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': 1})

students = student_id.keys()
fields = [student_age, student_id] # add other dicts here...
headers = ['name', 'age', 'id'] # ...

# write out a header row
for i, header in enumerate(headers):
    worksheet.write(0, i, header, bold)

for row, student in enumerate(student):
    row = row + 1
    worksheet.write(row, 0, student) # name column
    for col, student_data in enumerate(fields):
        col = col + 1
        worksheet.write(row, col, student_data.get(student, ''))

关于python xlsxwriter根据行数据写入单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38117610/

相关文章:

python - 如何使用 Python 将 Gaia 天体测量数据绘制为 TESS 图像?

excel - 有没有更简单/更好的方法来使用预定义的字典?

Excel C API 等效于 C# 中的 Interop Range.Value

php - 使用 Cron 作业/事件调度程序 30 分钟后删除 MySQL 行

SQL Case When - 从输出中删除 'empty' 行

Python:requests.exceptions.ConnectionError: ('Connection aborted.' , BadStatusLine ("' '",))

python - Python 中类 def 后的空格

python - 通过连接 Pandas 中的行的数据帧 header

excel - 当我不知道上限值时如何在excel vba中使用 'ReDim Preserve'

javascript - jQuery 选择器返回重复元素