Python:openpyxl将字体更改为粗体

时间:2017-09-11 18:25:59

标签: python excel fonts openpyxl

我在Windows上使用Python 3.6版和最新版本的openxlpy模块(v2.4.8)。

我想在单元格中将某些字体更改为粗体,但我不希望单元格中包含的所有文本都是粗体。简而言之,我将数据保存到我使用openxlpy创建的新Excel工作簿中。我在一个单元格中保存了多行数据。我只希望每个单元格的第一行都是粗体。

我在openpyxl文档和网上搜索过,但我找不到任何东西。在我看来,您只能将字体样式应用于整个单元格,这似乎不对。在Microsoft Excel中,您可以将不同的字体样式应用于一个单元格中的不同数据。

总之,我只想在单元格中加粗某些文本,而不是粗体显示单元格的全部内容。

最诚挚的问候, -Jeff

2 个答案:

答案 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")

Screendump of openpyxl BoldDemo

答案 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)

image with bold

enter image description here

在这里,您有两种选择。

  1. 使用另一个库来处理xlsx。 我会避免谈论使用替代库,因为我以为您使用openpyxl是有原因的。

  2. 创建自己的标记,并在使用openpyxl编辑和保存文件后使用自定义脚本添加格式。 您可以找到Office Open XML文件格式here的规范。 这也是一篇有关解析xlsx文件和xml的很棒的文章。

  3. 编辑openpyxl的代码库。

  4. 如果以上步骤无法实现/不期望,请尝试与openpyxl维护人员联系,或寻求帮助:/