这篇小笔记主要记录【如何使用xlwings库设置图例文本字体、粗细、正斜、颜色及图例位置】。前面的小笔记已整理成目录,可点链接去目录寻找所需更方便。
【目录部分内容如下】【点击此处可进入目录】
(1)如何安装导入xlwings库;
(2)如何在Wps下使用xlwings中使用WPS对表格操作;
(3)如何安装导入xlwings库、如何用xlwings打开要操作的Excel表格;
(4)如何使用xlwings对Excel表格数据进行读取操作;
(5)如何使用xlwings对Excel表格进行“保存”或“另存为”操作;
(6) 如何使用xlwings对Excel表格进行写入数据操作;
(7)如何使用xlwings向Excel表格中写入Excel公式;
(8)如何使用xlwings库中的“name"函数和“replace”函数对工作表进行改名;
。。。。。。等等
【如何使用xlwings库设置图例文本字体、粗细、正斜、颜色及图例位置】
(1)Work_Chart.api[1].Legend.Font.Name=‘字体名称’
# 设置图例文字字体。
# “api[1]”是指使用win32com与Excel交互,不能省。
# “Legend.Font.Name”是设置图例文字字体(若无设置则是读取)。
(2)Work_Chart.api[1].Legend.Font.Size=数值
# 设置图例文字字体的大小。
# “api[1]”是指使用win32com与Excel交互,不能省。
# “Legend.Font.Size”是设置坐标轴标题字体的大小(若无设置则是读取)。
(3)Work_Chart.api[1].Legend.Font.FontStyle=布尔值
# 设置图例文字字体是否加粗,此设置为布尔值;
# “api[1]”是指使用win32com与Excel交互,不能省。
# “Legend.Font.FontStyle”是设置图例文字字体是否粗细,True为粗体,False为关闭粗体(若无设置则是读取)。
(4)Work_Chart.api[1].Legend.Font.Italic=布尔值
# 设置图例文字字体是否斜体,此设置为布尔值;
# “api[1]”是指使用win32com与Excel交互,不能省。
# “Legend.Font.Italic”是设置图例文字字体是否斜体,True为斜体,False为关闭斜体(若无设置则是读取)。
(5)Work_Chart.api[1].Legend.Font.ColorIndex=数值
# 设置图例文字字体颜色。
# “api[1]”是指使用win32com与Excel交互,不能省。
# “Legend.Font.ColorIndex”是设置图例文字字体颜色(若无设置则是读取)。
# 指定颜色可以用“Color=(RGB值)”或“ColorIndex=系列号”
# “ColorIndex=3”是指用系列号指定颜色,因为它的颜色选择是非全区域色,所以有时候用RGB来指定时会没有这颜色。
# 附部分颜色系列号:1黑、2白、3红、4鲜绿、5蓝、6黄、7粉红、8青绿、9深红、10绿、11深蓝、12深黄
(6)Work_Chart.api[1].Legend.Font.Underline=数值
# 设置图例文字字体下划线;
# “api[1]”是指使用win32com与Excel交互,不能省。
# “Legend.Font.Underline”是设置图例文字字体下划线(若无设置则是读取)。
# 附下划线数值代表号:1代表无下划线、2代表单一下划线、3代表双下划线。
(7)Work_Chart.api[1].Legend.Position=数值
# 设置图例的位置。
# “api[1]”是指使用win32com与Excel交互,不能省。
# “Legend.Position”是设置图例的位置(若无设置则是读取)。
# 附位置数值代表号:1代表放置于底部、2代表放置于右上角、3代表放置于靠上、4代表放置于靠右、5代表放置于靠左
【举例说说更直观】
#【如何使用“Chart类”、“Api类"和“Axes函数”设置图例位置、文本字体、粗细、正斜、颜色】 #一、用“.charts.add”创建新图表; #二、用“.charts.name”重命名新图表; #三、用“.charts.set_source_data(数据区域)”设置图表的数据源; #四、用“.Charts.chart_type='参数'”设置图表类型; #五、用“.api[1].HasTitle = True ”设置图表标题是否显示; #六、用“.ChartTitle.Text = "图表标题"” 设置标题文本内容; #七、用“.api[1].ChartTitle.Font.Name='字体名称'”设置标题文本字体; #八、用“.api[1].ChartTitle.Font.Size=数值”设置标题文本字号; #九、用“.api[1].ChartTitle.Font.Bold=布尔值”设置标题文本粗细; #十、用“.api[1].ChartTitle.Font.Italic=布尔值”设置标题文本正斜; #十一、用“.api[1].ChartTitle.Font.Color=(RGB值)”或“.api[1].ChartTitle.Font.ColorIndex=颜色系列号”设置标题文本颜色; #十二、用“.api[1].Axes(1).HasTitle=布尔值”设置坐标轴标题打开或关闭。只标题打开才能进行下一步设置,若不打开就设置会出现错误。 #十三、用“.api[1].Axes(1).AxisTitle.Text='坐标轴的标题内容'”设置坐标轴标题内容。标题打开才能设置,若不打开就设置会出现错误。 #十四、用“.api[1].Legend.Font.Name = '字体名称'” 设置图例文字字体; #十五、用“.api[1].Legend.Font.Size = 数值” 设置图例文字字体大小; #十六、用“.api[1].Legend.Font.FontStyle = 布尔值” 设置图例文字字体粗细; #十七、用“.api[1].Legend.Font.Italic = 布尔值” 设置图例文字字体正斜; #十八、用“.api[1].Legend.Font.ColorIndex=数值” 设置图例文字字体颜色; #二十、用“.api[1].Legend.Position=数值” 设置图例位置; #然后是保存,关闭。 import xlwings as xw app=xw.App(visible=False,add_book=False) app.display_alerts=False #关闭各种提示信息,可以提高运行速度 File_Name='E:/素材/学生成绩表.xls' #打开要处理的Excel文件名 Work_Book=app.books.open(File_Name) #打开要处理的Excel文件中的工作簿 Work_Sheet=Work_Book.sheets[0] #打开要处理的Excel工作簿中的工作表; #“[0]”是指定打开最靠前的第1份工作表,也可以把“0”写成要打开的指定要打开的“工作表的名称”; #现在只打开这一个工作表也相当于激活这工作表,后面没有打开激活另一工作表,则所有操作只对现这工作表起作用。 Work_Chart= Work_Sheet.charts.add(left=450, top=1, width=300, height=200) #新建一个图表,并设置位置和大小(“left”与左边的距离,“top”与顶边的距离,“width”图表的长,“height”图表的高) Work_Chart.name='学生成绩图表' # 为图表命名,相当于把工作表默认的“Sheet1”重命名为其它名称一样。 Chart_Data=Work_Sheet.range('B1:F9') # 指定统计成图表的数据,数据区域中最左边列和最顶部行作为坐标轴 Work_Chart.set_source_data(Chart_Data) # 设置数据源 Work_Chart.chart_type='line' # 设置图表类型(如折线型,直方图型等),若无设置则是读取。 #附部分图表类型: #line折线图、3d_line三维折线图、line_stacked堆积折线图、line_stacked_100百分比堆积折线图、line_markers数据点折线图、line_markers_stacked数据点堆积折线图、line_markers_stacked_100数据点百分比堆积折线图、 #column_clustered柱形图(簇状形)、column_stacked柱形图(堆积形)、column_stacked_100柱形图(百分比堆积形)、 #3d_column_clustered柱形图(三维簇状形)、3d_column_stacked柱形图(三维堆积形)、3d_column_stacked_100柱形图(三维百分比堆积形)、3d_column柱形图(三维柱形图) #pie饼图、3d_pie三维饼图、pie_of_pie复合饼图、pie_exploded分离形饼图、3d_pie_exploded三维分离形饼图、bar_of_pie复合条饼图 Work_Chart.api[1].HasTitle = True #“api[1]”是指使用win32com与Excel交互,“[0]”是调用EXCEL版本说明,“[1]”只是版权说明,两个都无实质用处但不能省。 #“.HasTitle”通过API设置标题可见性(打开显示是True,关闭显示是False。这是一个例子,具体设置可能因 Excel 版本而异) Work_Chart.api[1].ChartTitle.Text = " 学 生 成 绩 图 表 顶 标 题" #“api[1]”是指使用win32com与Excel交互,“[0]”是调用EXCEL版本说明,“[1]”只是版权说明,两个都无实质用处但不能省。 #“.ChartTitle.Text = "图表标题"” 通过API设置标题文本,若无设置则是读取。 Work_Chart.api[1].ChartTitle.Font.Name='华文琥珀' #“ChartTitle.Font.Name”是设置图表标题“字体名称”,若无设置则是读取。 Work_Chart.api[1].ChartTitle.Font.Size=16 #“ChartTitle.Font.Size”是设置图表标题“字体大小”,若无设置则是读取。 Work_Chart.api[1].ChartTitle.Font.Bold=True # 设置是否加粗(True设为粗体,False取消粗体) #“ChartTitle.Font.Bold”是设置图表标题“字体是否加粗”,若无设置则是读取。 Work_Chart.api[1].ChartTitle.Font.Italic=True # 设置是否斜体(True设为斜体,False设为正体) #“ChartTitle.Font.Italic”是设置图表标题“字体是否斜体”,若无设置则是读取。 Work_Chart.api[1].ChartTitle.Font.ColorIndex=3 #“ChartTitle.Font.Color”是设置图表标题“字体颜色”,若无设置则是读取。 #指定颜色可以用“Color=(RGB值)”或“ColorIndex=系列号” #“ColorIndex=3”是指用系列号指定颜色,因为它的颜色选择是非全区域色,所以有时候用RGB来指定时会没有这颜色。 #符部分颜色系列号:1黑、2白、3红、4鲜绿、5蓝、6黄、7粉红、8青绿、9深红、10绿、11深蓝、12深黄 Work_Chart.api[1].Axes(1).HasMajorGridlines=True # 显示x轴主要网格线 Work_Chart.api[1].Axes(2).HasMajorGridlines=True # 显示y轴主要网格线 #“api[1]”是指使用win32com与Excel交互,“[0]”是调用EXCEL版本说明,“[1]”只是版权说明,两个都无实质用处但不能省 #“Axes(1)”是指激活(类似于鼠标的点击)X轴,“Axes(2)”是指激活(类似于鼠标的点击)Y轴 #“HasMajorGridlines”是指激活(类似于鼠标的点击)主要网格线(若无设置则是读取),True为打开,False为关闭。 Grid_X_Axes=Work_Chart.api[1].Axes(1).HasMajorGridlines #显示垂直于X轴的竖直线主要网格线设置是否打开(True为打开,False为关闭) #“api[1]”是指使用win32com与Excel交互,“[0]”是调用EXCEL版本说明,“[1]”只是版权说明,两个都无实质用处但不能省。 #“Axes(1)”是指激活(类似于鼠标的点击)X轴,“Axes(2)”是指激活(类似于鼠标的点击)Y轴。 #“HasMajorGridlines”是设置主要网格线是否显示(若无设置则是读取)。 Grid_Y_Axes=Work_Chart.api[1].Axes(2).HasMajorGridlines # 显示垂直于Y轴的竖直线主要网格线设置是否打开(True为打开,False为关闭) #“api[1]”是指使用win32com与Excel交互,“[0]”是调用EXCEL版本说明,“[1]”只是版权说明,两个都无实质用处但不能省。 #“Axes(1)”是指激活(类似于鼠标的点击)X轴,“Axes(2)”是指激活(类似于鼠标的点击)Y轴。 #“HasMajorGridlines”是设置主要网格线是否显示(若无设置则是读取)。 print(f'垂直于Y轴的竖直线主要网格线设置是否打开(True为打开,False为关闭): {Grid_X_Axes}') print(f'垂直于X轴的竖直线主要网格线设置是否打开(True为打开,False为关闭): {Grid_Y_Axes}') print() Work_Chart.api[1].Axes(1).HasTitle=True #设置X轴标题打开。标题打开才能进行下一步设置,若不打开就设置会出现错误。 X_Axes_Title_Switch=Work_Chart.api[1].Axes(1).HasTitle #获取X轴标题是否打开(True为打开,False为关闭) #“api[1]”是指使用win32com与Excel交互,“[0]”是调用EXCEL版本说明,“[1]”只是版权说明,两个都无实质用处但不能省。 #“Axes(1)”是指激活(类似于鼠标的点击)X轴,“Axes(2)”是指激活(类似于鼠标的点击)Y轴。 #“HasTitle”是设置坐标轴标题是否显示(若无设置则是读取。注意:若原没有设置去读取时会出现错误)。 Work_Chart.api[1].Axes(1).AxisTitle.Text='姓名' #设置X轴标题内容 #“api[1]”是指使用win32com与Excel交互,不能省。 #“Axes(1)”是指激活(类似于鼠标的点击)X轴,“Axes(2)”是指激活(类似于鼠标的点击)Y轴。 #“AxisTitle.Text”是设置坐标轴标题内容(若无设置则是读取)。 Work_Chart.api[1].Axes(2).HasTitle=True #设置Y轴标题打开。标题打开才能进行下一步设置,若不打开就设置会出现错误。 Y_Axes_Title_Switch=Work_Chart.api[1].Axes(2).HasTitle #获取Y轴标题是否打开(True为打开,False为关闭) Work_Chart.api[1].Axes(2).AxisTitle.Text='分数' #设置X轴标题内容; # “api[1]”是指使用win32com与Excel交互,不能省。 #“Axes(1)”是指激活(类似于鼠标的点击)X轴,“Axes(2)”是指激活(类似于鼠标的点击)Y轴。 #“AxisTitle.Text”是设置坐标轴标题内容(若无设置则是读取。注意:若原没有设置去读取时会出现错误)。 Legend_Font_1=Work_Chart.api[1].Legend.Font.Name # 设置图例文字字体。 # “api[1]”是指使用win32com与Excel交互,不能省。 # “Legend.Font.Name”是设置图例文字字体(若无设置则是读取)。 Legend_Size_1=Work_Chart.api[1].Legend.Font.Size # 设置图例文字字体的大小。 # “api[1]”是指使用win32com与Excel交互,不能省。 # “Legend.Font.Size”是设置坐标轴标题字体的大小(若无设置则是读取)。 Legend_FontStyle_1=Work_Chart.api[1].Legend.Font.FontStyle # 设置图例文字字体是否加粗,此设置为布尔值; # “api[1]”是指使用win32com与Excel交互,不能省。 # “Legend.Font.FontStyle”是设置图例文字字体是否粗细,True为粗体,False为关闭粗体(若无设置则是读取)。 Legend_Italic_1=Work_Chart.api[1].Legend.Font.Italic # 设置图例文字字体是否斜体,此设置为布尔值; # “api[1]”是指使用win32com与Excel交互,不能省。 # “Legend.Font.Italic”是设置图例文字字体是否斜体,True为斜体,False为关闭斜体(若无设置则是读取)。 Legend_Color_1=Work_Chart.api[1].Legend.Font.ColorIndex # 设置图例文字字体颜色。 # “api[1]”是指使用win32com与Excel交互,不能省。 # “Legend.Font.ColorIndex”是设置图例文字字体颜色(若无设置则是读取)。 # 指定颜色可以用“Color=(RGB值)”或“ColorIndex=系列号” # “ColorIndex=3”是指用系列号指定颜色,因为它的颜色选择是非全区域色,所以有时候用RGB来指定时会没有这颜色。 # 附部分颜色系列号:1黑、2白、3红、4鲜绿、5蓝、6黄、7粉红、8青绿、9深红、10绿、11深蓝、12深黄 Legend_Underline_1=Work_Chart.api[1].Legend.Font.Underline # 设置图例文字字体下划线; # “api[1]”是指使用win32com与Excel交互,不能省。 # “Legend.Font.Underline”是设置图例文字字体下划线(若无设置则是读取)。 # 附下划线数值代表号:1代表无下划线、2代表单一下划线、3代表双下划线。 Legend_Position_1=Work_Chart.api[1].Legend.Position # 设置图例的位置。 # “api[1]”是指使用win32com与Excel交互,不能省。 # “Legend.Position”是设置图例的位置(若无设置则是读取)。 # 附位置数值代表号:1代表放置于底部、2代表放置于右上角、3代表放置于靠上、4代表放置于靠右、5代表放置于靠左 Work_Chart.api[1].Legend.Font.Name = '华文琥珀' Work_Chart.api[1].Legend.Font.Size = 10 Work_Chart.api[1].Legend.Font.FontStyle = True Work_Chart.api[1].Legend.Font.Italic = True Work_Chart.api[1].Legend.Font.ColorIndex=3 Work_Chart.api[1].Legend.Font.Underline=2 Work_Chart.api[1].Legend.Position=5 X_Axes_Title_Text=Work_Chart.api[1].Axes(1).AxisTitle.Text #获取X轴标题内容 # “api[1]”是指使用win32com与Excel交互,不能省。 #“Axes(1)”是指激活(类似于鼠标的点击)X轴,“Axes(2)”是指激活(类似于鼠标的点击)Y轴。 #“AxisTitle.Text”是设置坐标轴标题内容,若无设置则是读取。注意:若原没有设置去读取时会出现错误。 Legend_Font_2=Work_Chart.api[1].Legend.Font.Name Legend_Size_2=Work_Chart.api[1].Legend.Font.Size Legend_FontStyle_2=Work_Chart.api[1].Legend.Font.FontStyle Legend_Italic_2=Work_Chart.api[1].Legend.Font.Italic Legend_Color_2=Work_Chart.api[1].Legend.Font.ColorIndex Legend_Underline_2=Work_Chart.api[1].Legend.Font.Underline Legend_Position_2=Work_Chart.api[1].Legend.Position print(f'获取X轴标题是否打开(True为打开,False为关闭): {X_Axes_Title_Switch}') print(f'获取X轴标题内容: {X_Axes_Title_Text}') print(f'原图例字体:{Legend_Font_1}; 更改后的图例字体:{Legend_Font_2}') print(f'原图例字体的大小:{Legend_Size_1}; 更改后的图例字体的大小:{Legend_Size_2}') print(f'原图例字体是否是粗体:{Legend_FontStyle_1}; 更改后的图例字体是否是粗体:{Legend_FontStyle_2}') print(f'原图例字体是否是斜体:{Legend_Italic_1}; 更改后的图例字体是否是斜体:{Legend_Italic_2}') print(f'原图例字体的颜色:{Legend_Color_1}; 更改后的图例字体的颜色:{Legend_Color_2}') print(f'原图例字体的下划线:{Legend_Underline_1}; 更改后的图例字体的下划线:{Legend_Underline_2}') print(f'原图例位置:{Legend_Position_1}; 更改后的图例位置:{Legend_Position_2}') print() Work_Book.save() #保存改动的工作簿。若无保存,则上述操作会随着工作簿的关闭而作废不保存。 Work_Book.close() #关闭工作簿。 app.quit() #退出Office软件,不驻留后台。
【运行前的表格】
【运行后的表格】
【终端显示的结果】