操作系统:Windows,Spyder 3.3.3,Python 3.7.2
我正面临错误,例如:
File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 786, in runfile
execfile(filename, namespace)
File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
TypeError: __init__() got an unexpected keyword argument 'typeface'
我相信原因是因为我正在使用同名的类。例如,我有一只手:
openpyxl.styles.fonts.Font
另一方面,我有:
openpyxl.drawing.text.Font
对于第一个,标记名是font
。第二个是latin
。
我正在使用第一个来定义NamedStyle
。同时,我正在使用第二种来定义用于轴标签的字体类型。
我会举一个例子。
下一个代码给出了上述错误:
from openpyxl.drawing.text import Font, ParagraphProperties, CharacterProperties
from openpyxl.styles import Font, Border, PatternFill, Side
# Defining font for axis label
fon = Font(typeface = "Arial")
cx = CharacterProperties(latin = fon, sz = 1400, b = True)
ax = ParagraphProperties(defRPr = cx)
下一个代码很好用:
from openpyxl.styles import Font, Border, PatternFill, Side
from openpyxl.drawing.text import Font, ParagraphProperties, CharacterProperties
# Defining font for axis label
fon = Font(typeface = "Arial")
cx = CharacterProperties(latin = fon, sz = 1400, b = True)
ax = ParagraphProperties(defRPr = cx)
如何在不引起误解的情况下进行?
答案 0 :(得分:0)
Blame OOXML,对于基本相同的对象具有不同的定义。但是在XML和Python中,元素/类都是使用名称空间隔离的。这很烦人,但是只要您注意名称空间就可以了。
这些元素不可互换:您不能在openpyxl.drawing.text.CharacterProperties元素中使用openpyxl.styles.font.Font
。 openpyxl.styles.font.Font
还将属性family
用于字体。
from openpyxl.drawing.text import Font
fon = Font(typeface = "Arial")