python自动化运维之XlsxWriter模块:实现对Excel文档操作

 

说明:

xlsxwriter模块,可以操作工作表的文字、数字、公司、图表等

小案例引入:

import xlsxwriter

#创建excel文件
writerbook = xlsxwriter.Workbook('first_excel.xlsx')
#创建工作表对象,不给名称默认为sheet1
sheet1 = writerbook.add_worksheet('first_sheet')

#设置sheet页面格式
sheet1.set_column('A:A',20)

#定义一个加粗的格式对象
bold = writerbook.add_format({'bold':True})

#页面中插入数据
sheet1.write('A1','hello')
sheet1.write('A2','World')
sheet1.write('A10','中国',bold)
sheet1.write(2,0,35)
sheet1.write(3,0,25)
sheet1.write(4,0,'=SUM(A3:A4)')
sheet1.insert_image('B5',r'C:\Users\hspcadmin\Desktop\1.png')

#关闭Excel文件
writerbook.close()

Excel样式为:

 

xlsxwriter三大类

1、Workbook():创建Excel文件

2、Worksheet():excel最核心模块

3、Char():图表组件的基类

  一、workbook类

1.Workbook类定义:
  Workbook(filename,[options]):实现创建一个XlsxWriter的workbook对象
    filename为创建Excel文件存储路径
    参数option(dict)类型为可选的workbook参数,一般作为初始化工作表内容格式
2. add_worksheet(sheetname)
  添加一个新的工作表,参数sheetname为可选名称,默认为sheet1
    举例:
    Workbook.add_sheet('员工信息')
    workbook.add_sheet('员工绩效')
    workbook.add_sheet('员工活动剪辑')

3、add_format([properities])
  作用是在工作表中创建一个新的格式对象来格式化单元格
  参数:property是dict类型
	举例:workbook.add_format(['bold':True]) 等价于:
	bold = workbook.add_format()
	bold.set_bold()
4、add_chart(options)方法
  作用:在工作表中创建一个图标对象,内部是通过insert_chart()方法来实现
5.close()	关闭工作表文件

   二、worksheet类

Worksheet类
  代表了一个Excel工作表,是xlsxwriter模块操作Excel内容最核心的一个类,例如将数据写入单元格或工作表格式布局等
  worksheet对象不能直接实例化,取而代之的是通过workbook对象调用add_worksheet()方法来创建。常用的方法如下:
	1.write(row,col,*args)
		将数据写入到工作表的单元格,row为行坐标,col为列坐标,坐标索引起始值为0
set_row(row,height,cee_format,options)
		作用:设置单元格属性
		row:指定行位置,起始下标为0
		height:设置行高
		cell_format:指定格式对象
		options:dict类型,设置hidden,level,collapsed
		worksheet.set_row(1,None,None,{'hidden':True})	:隐藏第二行单元格
#案例二
import xlsxwriter

writebook = xlsxwriter.Workbook('中南海.xlsx')

#创建sheet
writesheet = writebook.add_worksheet('5号')
writesheet.write('A1','HELLO')

#创建格式
cell_format = writebook.add_format({'bold':True})

#设置第一行单元格
writesheet.set_row(0,40,cell_format)#设置第一行像素为40高度,格式为加粗
writesheet.set_row(1,None,None,{'hidden':True})
writebook.close()

#1. set_column(first_col,last_col,width,cell_format,options)
		作用是:设置一列或多列单元格属性
		first_col:指定开始列位置,起始下标为0
		last_col:指定结束列位置
		width:设置列宽
		cell_format:指定格式对象
		options:设置行hidden(隐藏),level(组合分级),collapsed(折叠)
2.insert_image(row,col,image([options]))
		作用:插入图片到指定的单元格,支持PNG,JPEG,BMP等图片格式
#案例三:设置多列的单元格样式
import xlsxwriter

url = r'C:\Users\hspcadmin\Desktop\资料\Python\alien_invasion\pkg\上海.xlsx'
#定义文件名称

workbook = xlsxwriter.Workbook('上海.xlsx')

#定义sheet页面对象
writesheet = workbook.add_worksheet('6号')

#定义页面格式
cell_format = workbook.add_format({'bold':True})
writesheet.write('A1','now')
writesheet.write('B1','hi')
writesheet.set_column(0,1,10,cell_format)   #设置1,2行,高度为10个像素,字体加粗
writesheet.set_column('C:D',20)             #设置C,D两列,宽度为20像素
writesheet.set_column("E:G",None,None,{'hidden':True})  #E至D列,隐藏



workbook.close()

 三、chart类

Chart类
  实现在xlsxwriter模块中图标组件的基类,支持的图标类型包括面积、条形图、柱形图、折线图、饼图等
  1、一个图表对象是通过workbook的add_chart方法创建,通过{type,'图表类型'}字典参数指定图表类型
	chart = workbook.add_chart({type,'column'})
    图表类型说明:
	area:创建一个面积样式的图表
	bar:条形状的图表
	column:柱形样式
	line:线条样式
	pie:饼状
	scatter:散点样式
	stock:股票样式
	radar:雷达样式
  2、通过worksheet的insert_char()方法插入到指定的位置
	worksheet.insert_char('A7',chart)	在A7单元格插入图表
chart类其他几个常用的方法
	char.add_series(options)方法,作为添加一个数据系列到图表,参数options(dict类型)设置图表系列选项的字典
	chart.add_series({
	'categories':'=sheet1!$A$1:$A$5',
	'values': '=sheet1!$B$1:$B$5',
	'line':{'color':'red'},

})
	add_series方法常用的三个选项:categories,values,line,其中categories作为设置图表类别标签范围
	;values设置图表值范围,你了设置图表线条属性,包括颜色、宽度
    set_x_axis(options)方法,设置图表X轴选项
	chart.set_x_axis({
	'name':'earnings per quarter',			#设置x轴标题名称
	'name_front':'{'size':14,'bold':'True'}',	#设置x轴标题字体属性
	'num_font':{'italic':True},			#设置x轴数字字体属性

})

	set_size(options):设置图表大小,chart.set_size({'width':720,'height':576})
	set_title(options):设置图表标题  chart.set_title({'name':'year end results'})
	set_style(style_id):设置图表样式,style_id 为不同数字则代表不同样式
	set_table(options):设置x轴为数据表格形式,chart.set_table()

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值