如何用Python在Excel单元格中仅将字符串的一部分加粗?
我正在使用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 个回答
3
7
根据@ron-rosenfield的说法,想要实现这个功能的VBA代码看起来是这样的:
Range("A1").Characters(2,5).Font.Bold = true
而且,Excel工作表的范围内有一个叫做Characters的对象属性。
>>> ws.Range("A1").Characters
<win32com.gen_py.Microsoft Excel 14.0 Object Library.Characters 967192>
不过,你需要用到这个对象来访问范围的方法是GetCharacters(start, length)(索引从1开始,这和Excel的COM方法是一致的)。
ws.Range("A1").GetCharacters(2,4).Font.Bold = True
你可以使用这个命令来在之后更新单元格中字符的加粗状态。