如何使用Python将粗体样式应用于Excel文件中的特定单词?
时间:2020-03-06 14:29:02 来源:igfitidea点击:
我正在使用pyexceleratorPython模块生成Excel文件。
我想将粗体样式应用于单元格文本的一部分,而不是应用于整个单元格。
怎么做?
解决方案
这是来自Excel文档的示例:
With Worksheets("Sheet1").Range("B1") .Value = "New Title" .Characters(5, 5).Font.Bold = True End With
因此,我们要处理的单元格的Characters属性就是问题的答案。它用作字符(开始,长度)。
PS:我从未使用过有问题的模块,但在python脚本中使用了Excel COM自动化。使用win32com可以使用Characters属性。
在此处找到示例:直接在Python中生成Excel格式的文件
请注意,先创建一个字体对象,然后将其提供给样式对象,然后在写入工作表时提供该样式对象:
import pyExcelerator as xl def save_in_excel(headers,values): #Open new workbook mydoc=xl.Workbook() #Add a worksheet mysheet=mydoc.add_sheet("test") #write headers header_font=xl.Font() #make a font object header_font.bold=True header_font.underline=True #font needs to be style actually header_style = xl.XFStyle(); header_style.font = header_font for col,value in enumerate(headers): mysheet.write(0,col,value,header_style) #write values and highlight those that match my criteria highlighted_row_font=xl.Font() #no real highlighting available? highlighted_row_font.bold=True highlighted_row_font.colour_index=2 #2 is red, highlighted_row_style = xl.XFStyle(); highlighted_row_style.font = highlighted_row_font for row_num,row_values in enumerate(values): row_num+=1 #start at row 1 if row_values[1]=='Manatee': for col,value in enumerate(row_values): #make Manatee's (sp) red mysheet.write(row_num,col,value,highlighted_row_style) else: for col,value in enumerate(row_values): #normal row mysheet.write(row_num,col,value) #save file mydoc.save(r'C:testpyexel.xlt') headers=['Date','Name','Localatity'] data=[ ['June 11, 2006','Greg','San Jose'], ['June 11, 2006','Greg','San Jose'], ['June 11, 2006','Greg','San Jose'], ['June 11, 2006','Greg','San Jose'], ['June 11, 2006','Manatee','San Jose'], ['June 11, 2006','Greg','San Jose'], ['June 11, 2006','Manatee','San Jose'], ] save_in_excel(headers,data)