使⽤python创建excel表格---XlsxWriter模板详解——转载 最近在研究⾃动化巡检发邮件。因为是需要展现给领导看的,逼格当然得⾼,所以在邮件展现的地⽅需要⽤到excel模板,在⽹上查了下XlsxWriter的模板,发现还是挺强⼤的⼀个东西,能实现我所需要的⾼逼格:
⾸先,XlsxWriter⽀持⾜够多的样式、图表,另外还⽀持函数,等各种DIY姿势。不⾜地⽅在于只能创建excel,⽆法去修改读取,只能是创建!
⼀、创建⼀个表格
从输出⼀个Hello world开始:
import xlsxwriter #导⼊模板
workbook = xlsxwriter.Workbook('hello.xlsx') #创建⼀个名为 hello.xlsx 赋值给workbook
worksheet = workbook.add_worksheet() #创建⼀个默认⼯作簿赋值给worksheet
#⼯作簿也⽀持命名,
#如:workbook.add_worksheet('hello')
worksheet.write('A1', 'Hello world') #使⽤⼯作簿在 A1地⽅写⼊Hello world
workbook.close() #关闭⼯作簿
以上代码,最后⼀步关闭⼯作簿尤为重要,否则会出现报错。
批量写⼊表格
官⽹给出了⼀段批量写⼊的代码,思路是这样:
import xlsxwriter
workbook = xlsxwriter.Workbook('Expenses01.xlsx')
worksheet = workbook.add_worksheet()
#需要写⼊的数据
expenses = ( ['Rent',1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
)
#⾏跟列的初始位置
row = 0
col = 0
怎么创建excel表格#.write⽅法 write(⾏,列,写⼊的内容,样式)
for item,cost in (expenses):
worksheet.write(row,col,item) #在第⼀列的地⽅写⼊item
worksheet.write(row,col+1,cost) #在第⼆列的地⽅写⼊cost
row + 1 #每次循环⾏数发⽣改变
worksheet.write(row,0,'Total')
worksheet.write(row,1,'=SUM(B1:B4)') #写⼊公式
运⾏结果:
⼤致翻译⼀下:
类别描述属性⽅法名
字体字体font_name set_font_name()字体⼤⼩font_size set_font_size()
字体颜⾊font_color set_font_color()
加粗bold set_bold()
斜体italic set_italic()
下划线underline set_underline()
删除线font_strikeout set_font_strikeout()
上标/下标font_script set_font_script()
数字数字格式num_format set_num_format()保护表格锁定locked set_locked()隐藏公式hidden set_hidden()
对齐⽔平对齐align set_align()
垂直对齐valign set_align()
旋转rotation set_rotation()
⽂本包装text_wrap set_text_warp()
底端对齐text_justlast set_text_justlast()
中⼼对齐center_across set_center_across
缩进indent set_indent()
缩⼩填充shrink set_shrink()
模式表格模式pattern set_pattern()背景颜⾊bg_color set_bg_color()
前景颜⾊fg_color set_fg_color()
边框表格边框border set_border()底部边框bottom set_bottom()
上边框top set_top()
右边框right set_right()
边框颜⾊border_color set_border_color()
底部颜⾊bottom_color set_bottom_color()
顶部颜⾊top_color set_top_color()
左边颜⾊left_color set_left_color()
右边颜⾊right_color set_right_color()
三、插⼊图表
图表类型⽀持如下
区块:创建⼀个区块(填充线)样式表。
bar :创建⼀个bar风格(直⽅图)图。
柱型:创建⼀个列图表(柱状图)。
⾏:创建⼀个横⾏图表。
圆:创建⼀个圆的图表。
圈:创建⼀个圈⼀样的图表。
散射:创建⼀个散点图风格。
股票:创建⼀个股票样式表。
雷达:创建⼀个雷达样式表
每个⼀个类型都能细分⼀个⼦类型:
area
stacked
percent_stacked
bar
stacked
percent_stacked
column
stacked
percent_stacked
scatter
straight_with_markers
straight
smooth_with_markers
smooth
radar
with_markers
filled
如:创建⼀个叠加的柱型图:
workbook.add_chart({'type': 'column', 'subtype': 'stacked'})
⽰例:插⼊⼀个柱型图
插⼊图表需要⽤到.add_chartsheet()⽅法,如下:
ColumnChart = workbook.add_chart({'type':'column'}) #定义⼀个柱型图表ColumnChart.add_series({ #定义样式
'name':'Value', #⽬标值的名
'categories':'=Sheet1!$A$1:$D$1', #item的名
'values': '=Sheet1!$A$2:$D$2', #item的值
'fill': {'color':'#FF9900'}, #柱⼦的颜⾊
})
ColumnChart.set_x_axis({ #定义x轴
'name':'The Number of Column Chart', #标题
'name_font':{'size':10}, #字体
})
ColumnChart.set_y_axis({ #定义y轴
'name':'Server indexes', #标题
'name_font':{'size':14,'bold':True}, #字体样式
'num_font':{'italic':True}, #斜体
})
worksheet.insert_chart('A4',ColumnChart) #将这个表格插⼊A4的地⽅
⽰例:插⼊⼀个圆饼型图
MemChart = workbook.add_chart({'type':'pie'}) #定义⼀个圆饼型图表MemChart.add_series({
'categories':'=Sheet1!$A$20:$A$21', #项⽬名
'values': '=Sheet1!$B$20:$B$21', #值名
'points':[
{'fill':{'color':'#5ABAFE'}}, #第⼀个项⽬颜⾊
{'fill':{'color':'#FE110E'}}, #第⼆个项⽬颜⾊
],
})
MemChart.set_title({'name':'Memory Usage'}) #设置标题worksheet.insert_chart('A23',MemChart) #插⼊图表
运⾏结果:
当然样式有相当多,上边写的只是⼀⼩部分,更多样式参考
(未完待续)...
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论