如何使用python在excel单元格中仅加粗字符串的一部分

时间:2014-10-21 14:36:53

标签: python excel formatting win32com

我使用win32com填写带有一些分析信息的Excel电子表格。我有一个我希望以这种形式出现的单元格:

这是问题描述:这是您运行以解决问题的命令

我似乎无法弄清楚如何使用混合格式的python将文本放入单元格中。

import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
ws = wb.Worksheets("Sheet1")
excel.Visible=True
sel = excel.Selection
sel.Value = "this is the command you run to fix it"
sel.Font.Bold = True
ws.Cells(1,1).Value = 'This is the problem description' + sel.Value  #makes the whole cell bold
ws.Cells(1,1).Value = "{} {}".format("this is the problem desc",sel) #makes the whole cell bold

选择对象有一个Characters属性,但我无法找到有关它的功能的任何文档。我在这里有点不知所措,我可以使用助手。

由于

2 个答案:

答案 0 :(得分:4)

我终于找到了它,发布在这里,所以我们的堆栈溢出的霸主也可以得到答案。

Per @ ron-rosenfield,将其关闭的VBA代码如下:

Range("A1").Characters(2,5).Font.Bold = true 

同样,excel WorkSheet的Range

还有一个Characters对象属性
>>> ws.Range("A1").Characters
<win32com.gen_py.Microsoft Excel 14.0 Object Library.Characters 967192>

但是,使用该对象访问范围所需的方法是GetCharacters(start,length)(索引从excel com方法的常规开始为1)

ws.Range("A1").GetCharacters(2,4).Font.Bold = True

您可以使用此命令在事后更新单元格中的字符粗体。

答案 1 :(得分:1)

虽然您正在寻找问题正文中的win32com解决方案,但我会指出通过标题来到这里的任何人都可以使用XlsxWriter在Python中实现这一点。

Example

enter image description here