我在Windows上使用Python 3.6版和最新版本的openxlpy模块(v2.4.8)。
我想在单元格中将某些字体更改为粗体,但我不希望单元格中包含的所有文本都是粗体。简而言之,我将数据保存到我使用openxlpy创建的新Excel工作簿中。我在一个单元格中保存了多行数据。我只希望每个单元格的第一行都是粗体。
我在openpyxl文档和网上搜索过,但我找不到任何东西。在我看来,您只能将字体样式应用于整个单元格,这似乎不对。在Microsoft Excel中,您可以将不同的字体样式应用于一个单元格中的不同数据。
总之,我只想在单元格中加粗某些文本,而不是粗体显示单元格的全部内容。
最诚挚的问候, -Jeff
答案 0 :(得分:2)
回答帖子标题但不回答特定问题。
from openpyxl.workbook import Workbook
from openpyxl.styles import Font
wb = Workbook()
ws = wb.active
ws['B3'] = "Hello"
ws['B3'].font = Font(bold=True)
wb.save("BoldDemo.xlsx")
答案 1 :(得分:0)
我认为openpyxl并未对单元格内样式差异实施任何处理。如果您在一个单元格中获取具有多种样式的文件,则将其导入openpyxl并保存为新文件,而无需更改单元格,新文件将失去其格式。
>>>import openpyxl
>>>path = 'test.xlsx'
>>>book = openpyxl.load_workbook(path)
>>>book.active['a1']
>>>book.active['a1'].value
'not bold line\nbold line\nnot bold line\n'
>>>print(_)
not bold line
bold line
not bold line
>>>book.save(path)
在这里,您有两种选择。
使用另一个库来处理xlsx。 我会避免谈论使用替代库,因为我以为您使用openpyxl是有原因的。
创建自己的标记,并在使用openpyxl编辑和保存文件后使用自定义脚本添加格式。 您可以找到Office Open XML文件格式here的规范。 这也是一篇有关解析xlsx文件和xml的很棒的文章。
编辑openpyxl的代码库。
如果以上步骤无法实现/不期望,请尝试与openpyxl维护人员联系,或寻求帮助:/