用openpyxl改变所有细胞的样式

时间:2014-05-23 13:46:12

标签: python excel openpyxl

我使用openpyxl 2.0.3和python2.7。

有没有办法将样式应用于工作表中的每个单元格?假设我想更改所有单元格的字体,类似于打开excel文档的方式,点击ctrl + a,右键单击并更改格式。

2 个答案:

答案 0 :(得分:2)

没有方法可以做到这一点。目前,最好的方法可能是为所有相关列或行设置样式

style = Style(…)
for col in 'ABCD':
     ws._styles['A'] = style

我认为我们将在即将发布的版本中努力改进处理方式。

答案 1 :(得分:0)

我理解这个问题是否有效地更改了默认工作表(工作簿?)字体。这与我需要更改默认字体以匹配其他excel文档基本相同。关于在单元格或列上更改字体有许多类似的问题:

  1. 2011-07-21 - Use openpyxl to edit a Excel2007 file (.xlsx) without changing its own styles?
  2. 2011-12-09 - Setting styles in Openpyxl
  3. 2014-05-23 - Alter the style of all cells with openpyxl
  4. 2017-04-20 - Formatting Fonts and Alignment
  5. 2018-03-07 - How to change font size in Python OpenPyXL
  6. 2018-05-04 - Python Setting Style and Font Size in Excel
  7. 此答案更改默认工作簿字体。很明显,API不支持此功能,但我很乐意覆盖该软件包。我开始搜索 Calibri ,这是我在计算机上不使用的字体:

    sock.send("ERR ") TypeError: a bytes-like object is required, not 'str' 中的两行看起来很相似:

    ..\openpyxl\styles\__init__.py

    from .fonts import Font, DEFAULT_FONT from .named_styles import NamedStyle 改变:

    fonts.py

    其他似乎值得关注的地方有:# Hack default font # DEFAULT_FONT = Font(name="Calibri", sz=11, family=2, b=False, i=False, DEFAULT_FONT = Font(name="Calibri", sz=10, family=2, b=False, i=False, color=Color(theme=1), scheme="minor") named_styles.pystylesheet.pystyleable.pytheme.py

    我很感激有任何建议可以整理workbook.py来自fonts.py的{​​{1}}中的常量。