python(xlsxwriter模塊使用)


XlsxWriter簡介
XlsxWriter是一個Python模塊,可用於在Excel 2007+ XLSX文件中寫入多個工作表的文本,數字,公式和超鏈接。它支持格式化等功能。可到官網了解更多詳情,官網鏈接:https://xlsxwriter.readthedocs.io/

安裝XlsxWriterd
pip install XlsxWriter
1
實例1:創建一個xlsx文件,並寫入內容
import xlsxwriter

# 創建工作簿並添加工作表
workbook = xlsxwriter.Workbook('demo1.xlsx')
worksheet = workbook.add_worksheet()

# 寫入數據到A1
worksheet.write('A1', 'Hello world')

# 關閉excel文件
workbook.close()


實例2:xlsx的的簡單應用
假設我們有一些關於我們想要轉換為Excel XLSX文件的月度支出的數據:

expenses = (
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
)

要做到這一點,我們可以從一個小程序開始,如下所示:

import xlsxwriter

# 創建工作簿並添加工作表。
workbook = xlsxwriter.Workbook('Expenses01.xlsx') # 設置輸出路徑為當前目錄下
worksheet = workbook.add_worksheet()

# 下面是我們想要寫入工作表的一些數據。
expenses = (
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
)

# 從第一個單元格開始。行和列為零索引。
row = 0
col = 0

# 迭代數據並逐行寫出。
for item, cost in (expenses):
worksheet.write(row, col, item)
worksheet.write(row, col + 1, cost)
row += 1

# 使用公式計算總和。
worksheet.write(row, 0, 'Total')
worksheet.write(row, 1, '=SUM(B1:B4)')

# 不要忘記關閉文件
workbook.close()

運行程序后,我們可以在剛剛設置的目錄下找到‘Expenses01.xlsx’文件。
Expenses01.xlsx 打開后如下圖所示:


實例3:向xlsx文件添加格式
在上一節中,我們使用Python和XlsxWriter模塊創建了一個簡單的電子表格。

這將所需的數據轉換為Excel文件,但看起來有點光鮮。為了使信息更清晰,我們想添加一些簡單的格式,如下所示:


重點觀察注釋部分即可,大部分代碼與實例2相同,對比實例2與實例三的異同

import xlsxwriter

workbook = xlsxwriter.Workbook('Expenses02.xlsx')
worksheet = workbook.add_worksheet()

# 使用add_fromat方法設置單元格的格式
bold = workbook.add_format({'bold': True}) # 添加粗體格式
money = workbook.add_format({'num_format': '$#,##0'}) # 添加數字格式

# 在worksheet的write方法中的第三個參數寫上剛剛設置的格式參數,即可為單元格填充格式
worksheet.write('A1', 'Item', bold) # 設置標題欄為粗體
worksheet.write('B1', 'Cost', bold)

expenses = (
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
)

row = 1
col = 0

for item, cost in (expenses):
worksheet.write(row, col, item)
worksheet.write(row, col + 1, cost, money) # 設置數字格式
row += 1

worksheet.write(row, 0, 'Total', bold)
worksheet.write(row, 1, '=SUM(B2:B5)', money)

workbook.close()

 

 

1、xlsxwriter模塊的簡單使用:

     xlsxwriter模塊主要用來生成excel表格,插入數據、插入圖標等表格操作。

     1.1 基本功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import  xlsxwriter    #導入模塊
 
workbook  =  xlsxwriter.Workbook( 'new_excel.xlsx' )      #新建excel表
 
worksheet  =  workbook.add_worksheet( 'sheet1' )        #新建sheet(sheet的名稱為"sheet1")
 
headings  =  [ 'Number' , 'testA' , 'testB' ]      #設置表頭
 
data  =  [
     [ '2017-9-1' , '2017-9-2' , '2017-9-3' , '2017-9-4' , '2017-9-5' , '2017-9-6' ],
     [ 10 , 40 , 50 , 20 , 10 , 50 ],
     [ 30 , 60 , 70 , 50 , 40 , 30 ],
]                                                               #自己造的數據
 
 
 
worksheet.write_row( 'A1' ,headings)
 
worksheet.write_column( 'A2' ,data[ 0 ])
worksheet.write_column( 'B2' ,data[ 1 ])
worksheet.write_column( 'C2' ,data[ 2 ])                    #將數據插入到表格中
 
 
workbook.close()           #將excel文件保存關閉,如果沒有這一行運行代碼會報錯

  查看生成excel的結果:

        

   1.2 將excel中插入折線圖     

  View Code

   生成圖表如下圖

    

 2、xlsxwriter模塊常用功能介紹:

 2.1、設置單元格的格式:

 2.1.1、通過字典的方式直接設置格式。          

復制代碼
1 workfomat = workbook.add_format({
2     'bold':  True,                 #字體加粗
3     'border':1,                    #單元格邊框寬度
4     'align':    'center',          #對齊方式
5     'valign':   'vcenter',         #字體對齊方式
6     'fg_color': '#F4B084',         #單元格背景顏色
7 })
復制代碼

2.1.2、通過format對象的方式設置單元格格式。

1 workfomat = workbook.add_format()
2 workfomat.set_bold(1)                #設置邊框寬度
3 workfomat.set_num_format('0.00')     #格式化數據格式為小數點后兩位
4 workfomat.set_align('center')        #設置對齊方式
5 workfomat.set_fg_color('blue')       #設置單元格背景顏色
6 workfomat.set_bg_color('red')        #設置單元格背景顏色 (經測試和上邊的功能一樣)

2.1.3、一些單元表的操作,像這樣的操作還有好多,可以根據自己的需要去進行研究。

1 worksheet.merge_range('D1:D7','合並單元格')        #合並單元格
2 worksheet.set_tab_color('red')                      #設置sheet標簽顏色
3 worksheet.set_column('A:D',25)                      #設置A到D列的列寬為25
4 worksheet.write_formula('E2','=B2/C2')             #設置表格中的計算,‘E2’是計算結果,'=B2/C2'是計算公式

2.2、常用圖表類型:

復制代碼
1 #area:面積圖
2 #bar:直方圖
3 #colume:柱狀圖
4 #line:折線圖
5 #pie:餅圖
6 #doughnut:環形圖
7 #sactter:散點圖
8 #stock:股票趨勢圖
9 #radar:雷達圖
復制代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM