excel Python:openpyxl将字体改为粗体

3vpjnl9f  于 2023-06-07  发布在  Python
关注(0)|答案(2)|浏览(185)

我在Windows上使用Python 3.6版本和最新版本的openxlpy模块(v2.4.8)。
我想将单元格中的某些字体更改为粗体,但不想将单元格中包含的所有文本都更改为粗体。简而言之,我正在将数据保存到使用openxlpy创建的新Excel工作簿中。我在一个单元格中保存了多行数据。我只希望每个单元格的第一行是粗体。
我已经在openpyxl文档和网上搜索了所有地方,但我什么也找不到。在我看来,你只能对整个单元格应用字体样式,这似乎不正确。在Microsoft Excel中,您可以对一个单元格中的不同数据应用不同的字体样式。
总之,我只想加粗单元格中的某些文本,而不加粗单元格的整个内容。

ehxuflar

ehxuflar1#

回答帖子标题,但不回答具体问题。

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

bvuwiixz

bvuwiixz2#

我不认为openpyxl已经实现了任何处理intracell风格的差异。如果你在一个单元格中有多个样式的文件,在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)

从这里你有几个选择。
1.使用另一个库处理xlsx。我将避免谈论使用替代库,因为我假设您使用openpyxl是有原因的。
1.创建你自己的markdown,并在编辑和保存文件后使用自定义脚本添加格式。您可以找到Office Open XML文件格式here的规范。这里也是一篇关于解析xlsx文件和xml的好文章。
1.编辑openpyxl的代码库。
1.如果上面的步骤无法实现/不可取,请尝试联系openpyxl维护人员,或聘请帮助:/

相关问题