Python 如何使用xlwt将富文本放入合并单元格

Python 如何使用xlwt将富文本放入合并单元格,python,excel,xlwt,Python,Excel,Xlwt,继我需要的功能的一个子集之后,我尝试将富文本放入使用xlwt包创建的Excel工作表的合并单元格中。我知道sheet.write\u merge()和(借助前面的问题)我找到了sheet.write\u rich\u text(),但似乎没有一种方法可以同时做到这两个方面。Excel支持它,所以至少在理论上xlwt应该可以做到这一点。功能是否存在而我却没有找到 谢谢 我还没有找到一个工作表。在API中编写富文本合并()方法来完成我在这里需要做的事情,但是我通过试验找到了一种似乎有效的方法。你要做

继我需要的功能的一个子集之后,我尝试将富文本放入使用xlwt包创建的Excel工作表的合并单元格中。我知道
sheet.write\u merge()
和(借助前面的问题)我找到了
sheet.write\u rich\u text()
,但似乎没有一种方法可以同时做到这两个方面。Excel支持它,所以至少在理论上xlwt应该可以做到这一点。功能是否存在而我却没有找到


谢谢

我还没有找到一个
工作表。在API中编写富文本合并()方法
来完成我在这里需要做的事情,但是我通过试验找到了一种似乎有效的方法。你要做的是

  • 使用允许覆盖单元格的标志创建工作表
  • 将虚拟值写入范围
  • 用值序列替换范围中第一个单元格的内容
  • 例如:

    import xlwt
    
    book = xlwt.Workbook()
    style = xlwt.easyxf("align: wrap true, horiz left, vert top")
    comment_font = xlwt.easyfont("italic true, color_index green")
    sheet = book.add_sheet("Merged Rich Text", cell_overwrite_ok=True)
    sheet.col(0).width = sheet.col(1).width = 7500
    drug_name = "atezolizumab"
    comment = "For NCT01375842; No info available at this time"
    segments = (drug_name, "\n", ("[%s]" % comment, comment_font))
    other_names = ("anti-PD-L1 monoclonal antibody", "MPDL3280A", "RG7446")
    sheet.write_merge(0, len(other_names) - 1, 0, 0, "", style)
    sheet.row(0).set_cell_rich_text(0, segments, style)
    for i, name in enumerate(other_names):
        sheet.write(i, 1, name, style)
    fp = open("repo.xls", "wb")
    book.save(fp)
    fp.close()
    
    最好使用一个API函数,通过单个调用处理合并和富文本格式设置,而不需要禁止检查是否覆盖单元格,但是如果您总是小心地通过临时注释掉
    set_cell_rich_text()来测试代码的话
    调用并删除允许单元格覆盖的标志,您仍然能够捕获错误覆盖单元格的其他地方的错误