使⽤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小时内删除。