python生成excel模板_使用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
#.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)')?????#寫入公式
運行結果:
二、表格樣式
東西雖然寫出來了,但是光禿禿的,什么都沒有,負分,滾回馬桶!使用樣式裝飾一下吧!
表格樣式支持:字體、顏色、模式、邊框、數字格式等。
表格樣式需要用到.add_format方法
你可以直接將其封裝成一個類:ItemStyle?=?workbook.add_format({
'font_size':10,?????????????????#字體大小
'bold':True,???????????????????#是否粗體
'bg_color':'#101010',??????????????#表格背景顏色
'font_color':'#FEFEFE',?????????????#字體顏色
'align':'center',????????????????#居中對齊
'top':2,?????????????????????#上邊框
#后面參數是線條寬度
'left':2,????????????????????#左邊框
'right':2,????????????????????#右邊框
'bottom':2????????????????????#底邊框
})
你可以可以直接調用方法,像這樣:ItemStyle.set_font_size(10)
ItemStyle.set_bold()
ItemStyle.set_bg_color('#101010')
ItemStyle.set_font_color('#FEFEFE')
ItemStyle.set_align('center')
ItemStyle.set_align('vcenter')
ItemStyle.set_bottom(2)
ItemStyle.set_top(2)
ItemStyle.set_left(2)
ItemStyle.set_right(2)
兩個姿勢都是可以的,只要你喜歡。
大致翻譯一下:
類別描述屬性方法名
字體字體font_nameset_font_name()
字體大小font_sizeset_font_size()
字體顏色font_colorset_font_color()
加粗boldset_bold()
斜體italicset_italic()
下劃線underlineset_underline()
刪除線font_strikeoutset_font_strikeout()
上標/下標font_scriptset_font_script()
數字數字格式num_formatset_num_format()
保護表格鎖定lockedset_locked()
隱藏公式hiddenset_hidden()
對齊水平對齊alignset_align()
垂直對齊valignset_align()
旋轉rotationset_rotation()
文本包裝text_wrapset_text_warp()
底端對齊text_justlastset_text_justlast()
中心對齊center_acrossset_center_across
縮進indentset_indent()
縮小填充shrinkset_shrink()
模式表格模式patternset_pattern()
背景顏色bg_colorset_bg_color()
前景顏色fg_colorset_fg_color()
邊框表格邊框borderset_border()
底部邊框bottomset_bottom()
上邊框topset_top()
右邊框rightset_right()
邊框顏色border_colorset_border_color()
底部顏色bottom_colorset_bottom_color()
頂部顏色top_colorset_top_color()
左邊顏色left_colorset_left_color()
右邊顏色right_colorset_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)???????????#插入圖表
運行結果:
當然樣式有相當多,上邊寫的只是一小部分,更多樣式參考
官網圖表樣式:http://xlsxwriter.readthedocs.io/chart.html
(未完待續)...
總結
以上是生活随笔為你收集整理的python生成excel模板_使用python创建excel表格 --- XlsxWriter模板详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++ mmap写入速度_Linux系统
- 下一篇: 1加6投屏_6月1日起驾考要加项目?真相