學習-xlsxwriter模塊


Xlsx是python用來構造xlsx文件的模塊,可以向excel2007+中寫text,numbers,formulas 公式以及hyperlinks超鏈接。

可以完成xlsx文件的自動化構造,包括:

合並單元格,制作excel圖表等功能:

技術分享圖片

import xlsxwriter


# Create an new Excel file and add a worksheet.  
workbook = xlsxwriter.Workbook('demo.xlsx')     #創建工作簿
worksheet = workbook.add_worksheet()            #創建工作表

# Widen the first column to make the text clearer. 
worksheet.set_column('A:A', 20)       #設置一列或者多列單元屬性

# Add a bold format to use to highlight cells.
bold = workbook.add_format({'bold': True})    #在工作表中創建一個新的格式對象來格式化單元格,實現加粗

# Write some simple text.
worksheet.write('A1', 'Hello')       #工總表寫入簡單文本

# Text with formatting.
worksheet.write('A2', 'World', bold)     #工作表寫入帶有格式的文本,加粗

# Write some numbers, with row/column notation.  #按照坐標寫入
worksheet.write(2, 0, 123)     
worksheet.write(3, 0, 123.456)

# Insert an image.
worksheet.insert_image('B5', 'logo.png')   #插入圖片

workbook.close()    #關閉工作薄

 安裝方式:pip install XlsxWriter

方法詳細解釋:

1.workbook類

定義:Workbook(filename[,options])

該類創建一個XlsxWriter的Workbook對象。Workbook代表整個電子表格文件,並且存儲在磁盤上。filename為字符串類型,表示創建的excel文件存儲路徑;

options:為dict類型,是可選參數,一般作為初始化工作表內容格式

add_worksheet

add_worksheet([sheetname])方法,用於添加一個新的工作表,sheetname為工作表名稱,默認是sheet1,例如:

    worksheet1 = workbook.add_worksheet()   #sheet1
    worksheet2 = workbook.add_worksheet('test')     #test
    worksheet3 = workbook.add_worksheet('data')     #data
    worksheet4 = workbook.add_worksheet()   #sheet4

 

add_format

add_format([properties])方法,用於在工作表中創建一個新的格式對象來格式化單元格

properties:為dict類型,為指定一個格式屬性的字典

例如設置一個加粗的格式對象如下:

    bold = workbook.add_format({'bold': True})
    等價的語句如下:
    bold = workbook.add_format()
    bold.set_bold()

 

add_chart

add_chart(options)方法,用於在工作表中創建一個圖表對象,內部是通過insert_chart()方法來實現的,參數為dict類型,是為圖標指定一個字典屬性。

例如設置一個線條行的圖表對象,代碼如下:

  chart = workbook.add_chart({'type': 'line'})1

close

close()方法,作用是關閉工作表文件,如:

workbook.close()

 

2.Worksheet類

代表一個excel工作表,是比較核心的一個類。Worksheet對象不能直接實例化,而是通過Workbook對象調用add_worksheet()方法來創建,常見的方法如下:

 

write

write(row, col, *args)方法:是用來將普通數據寫入單元格中。

row:行坐標;
col:列坐標; 坐標索引起始值為0
*args:無名字參數為數據內容,可為數字,公式,字符串或格式對象

為了簡化不同數據類型的寫入過程,write方法已作為其他更加具體的數據類型方法的別名,如:

  write.string():寫入字符串類型數據 
  wirte_number():寫入數字型數據 
  write_blank():寫入空類型數據  
 write_formula():寫入公式型數據 
 write_datetime():寫入日期型數據  
 wirte_boolean():寫入邏輯型數據  
 write_url():寫入超鏈接型數據

 

set_row

set_row(row, height, cell_format, options)方法,用於設定行單元格的屬性。

row:指定行位置,起始下標為0;
height:為float類型,設定行高,單位像素;
cell_format:format類型,指定對象格式;
options,字典類型,設置行hidden(隱藏)、level(組合分級)、collpsed(折疊)

示例如下:

  worksheet2.write('A1', 'hello')
  bold = workbook.add_format({'bold': True})  # 設定A1行高40,加粗
  worksheet2.set_row(0, 40, bold)  # 隱藏第二行
  worksheet2.set_row(1, None, None, {'hidden': True})

set_column

set_column(first_col, last_col, width, cell_format, options)方法,用於設置一列或多列單元格的屬性

first_col:整型,指定開始列位置,起始下標為0;
last_col:整型,指定結束列位置,起始下標為0;
width:float類型,設置列寬;
cell_format:format類型,指定格式對象;
options:dict類型,設置hidden(隱藏)、level(組合分級)、collpsed(折疊);

 

示例如下:

  worksheet2.write('A1', 'hello')
  worksheet2.write('B1', 'world')
  bold = workbook.add_format({'bold': True})  # 設定列A到B單元格寬度10像素,加粗
  worksheet2.set_column(0, 1, 10, bold)  # 設置C到D單元格寬度20像素
  worksheet2.set_column('C:D', 20)
  隱藏E到G單元格
  worksheet2.set_column('E:G', None, None, {'hidden': 1})

insert_image

insert_image(row, col, image[, options])方法,用於插入圖片到指定的單元格,支持PNG,JPEG,BMP等多種格式。

row:行坐標,起始索引值為0;
col:列坐標,起始索引值為0;
image:string類型,是圖片路徑;
options:dict類型,是可選參數,用於指定圖片位置,如URL等信息;

示例如下:

  # 在B5單元格插入python-logo.png圖片,超鏈接為http://python.org
  worksheet1.insert_image('B5', 'img/python-logo.png', {'url': 'http://python.org'})12

chart類

chart類實圖表組件,支持包括面積、條形圖、柱狀圖、折線圖、散點圖等,一個圖表對象是通過Workbook的add_chart方法創建,通過{type, ‘圖表類型’}字典來制定圖表類型,示例如下:

  # 創建一個column(柱形)圖表
  chart = workbook.add_chart({type, 'column'})12

常見的圖表樣式如下:

area:面積樣式的圖表
bar:條形圖
column:柱狀圖
line:線條樣式的圖表
pie:餅形圖
scatter:散點圖
stock:股票樣式的圖表
radar:雷達樣式的圖表

然后通過Worksheet的insert_chart()方法插入到指定位置,示例如下:

幾個常用方法如下:

add_series

chart.add_series(options)方法:用於添加一個數據系列的圖表,參數options為字典類型,用於設置圖表系列選項的字典,示例如下:

  chart.add_series({
      'categories': '=Sheet1!$A$1:$A$5',
      'values': '=Sheet1!$B$1:$B$5',
      'line': {'color': 'red'},
  })12345

add_series的常用三個選項:

categories:設置圖表類別標簽范圍;
values:設置圖表數據范圍;
line:設置圖表線條屬性,包括寬度、顏色等;

set_x_axis

set_x_axis(options)方法,設置圖表X軸選項,示例如下:

 chart.set_x_axis({      'name': 'x name',      'name_font': {'size': 14, 'bold': True}      'num_font': {'italic': True}
  })12345
  
  name:設置x軸名稱;
name_font:設置x軸字體;
num_font:設置x軸數字字體屬性;

set_size

set_size(options)方法,用於設置圖表大小,示例如下:

  chart.set_size({'width': 720, 'height': 576})1
width:設置寬度;
height:設置高度;

set_title

set_title(options)方法,設置圖表標題,示例如下:

chart.set_title({'name': 'test'})1

set_style

set_style(style_id)方法,用於設置圖表樣式,style_id為不同數字代表不同樣式,示例如下:

  chart.set_style(37)1

set_table

set_table(options)方法,設置x軸為數據表格式。示例如下:

  chart.set_table()


免責聲明!

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



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