python_xlsxwriter模塊


  1.workbook類

  • add_worksheet

  用於添加一個新的工作表,sheetname為工作表名稱,默認是sheet1,例如:

1 worksheet = workbook.add_worksheet()
2 worksheet = workbook.add_worksheet('測試詳情')
  • add_format

  用於在工作表中創建一個新的格式對象來格式化單元格

1 bold = workbook.add_format({
2     'bold': 1,             #字體加粗
3     'fg_color': 'green',   #單元格背景顏色
4     'align': 'center',     #對齊方式
5     'valign': 'vcenter',   #字體對齊方式
6 })
  • add_chart

  用於在工作表中創建一個圖表對象,內部通過insert_chart()方法來實現,參數為dict類型。

 chart1 = workbook.add_chart({'type':'column'}) #選擇豎狀圖
  • 設置sheet表單元格的行高和列寬

  set_row(row, height)方法,用於設定某一行單元格的行高

  (row:指定行位置,起始下標為0;height:為float類型,設定行高,單位像素)

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

  (irst_col:整型,指定開始列位置,起始下標為0;last_col:整型,指定結束列位置,起始下標為0;width:float類型,設置列寬)

  set_column(“first_col:last_col”, width)方法(first_col和last_col用英文字母表示列名,起始為A)

1 # 設置sheet表單元格列寬
2 ws.set_column(0,3,40) #設定第1到4列的列寬為40
3 ws.set_column("A:A", 40) #設定A列列寬為40
4 ws.set_column("B:D", 15) #設定B、C、D三列的列寬為15
5 ws.set_column("E:F", 50) #設定E、F列的列寬為50
6 
7 #設置sheet表單元格行高
8 ws.set_row(0,40) #設置第一行的高度為40
  • 向單元格中寫入內容:write

write(row, col, data,cell_format)方法:是用來將普通數據寫入單元格中(行標、列標、內容、單元格格式)

 1 write.string():寫入字符串類型數據 
 2 wirte_number():寫入數字型數據 
 3 write_blank():寫入空類型數據 
 4 write_formula():寫入公式型數據 
 5 write_datetime():寫入日期型數據 
 6 wirte_boolean():寫入邏輯型數據 
 7 write_url():寫入超鏈接型數據
 8 
 9 # 示例:
10 ws.write(1,1,"python操作excel") #在單元格1行1列中寫入:“python操作excel”

  2.chart類

  chart類實圖表組件,通過workbook的add_chart方法創建。

chart1 = workbook.add_chart({'type':'column'}) #選擇豎狀圖
常見的圖表樣式如下:
area:面積樣式的圖表
bar:條形圖
column:柱狀圖
line:線條樣式的圖表
pie:餅形圖
scatter:散點圖
stock:股票樣式的圖表
radar:雷達樣式的圖表

  3.實例

 1 #!/usr/bin/env python
 2 # _*_ coding:utf-8 _*_
 3 __author__ = 'Yinjia'
 4 
 5 import xlsxwriter
 6 
 7 #生成.xlsx文件
 8 workbook = xlsxwriter.Workbook('test_table.xlsx')
 9 #工作頁
10 worksheet = workbook.add_worksheet('測試詳情')
11 worksheet.set_tab_color('red')
12 
13 #准備測試數據
14 bold = workbook.add_format({
15     'bold': 1,             #字體加粗
16     'fg_color': 'green',   #單元格背景顏色
17     'align': 'center',     #對齊方式
18     'valign': 'vcenter',   #字體對齊方式
19 })
20 headings = ['Number','Batch1','Batch2']  #設置表頭
21 data = [
22     [2,3,4,5,6,7],
23     [10,40,50,20,10,50],
24     [30,60,70,50,40,30],
25 ]
26 
27 #插入數據
28 worksheet.write_row('A1',headings,bold) #行插入操作
29 worksheet.write_column('A2',data[0]) #列插入操作
30 worksheet.write_column('B2',data[1])
31 worksheet.write_column('C2',data[2])
32 
33 #插入直方圖1
34 chart1 = workbook.add_chart({'type':'column'}) #選擇豎狀圖
35 chart1.add_series({
36     'name': '=測試詳情!$B$1',
37     'categories': '=測試詳情!$A$2:$A$7',
38     'values':   '=測試詳情!$B$2:$B$7',#Y軸值
39     'data_labels': {'value': True} #顯示數字,就是直方圖上面的數字,默認不顯示
40 })
41 
42 #注意上面寫法 '=Sheet1!$B$2:$B$7' Sheet1是指定工作頁, $A$2:$A$7是從A2到A7數據,
43 #插入直方圖2
44 chart1.add_series({
45     'name': '=測試詳情!$B$1',
46     'categories': '=測試詳情!$A$2:$A$7',
47     'values':   '=測試詳情!$C$2:$C$7',#Y軸值
48     'data_labels': {'value': True}
49 })
50 
51 chart1.set_title({'name': 'Chart with Data Table'}) #直方圖標題
52 chart1.set_x_axis({'name': 'Test number'}) #X軸描述
53 chart1.set_y_axis({'name': 'Sample length (mm)'})#Y軸描述
54 chart1.set_table() #設置x軸為數據表格式
55 chart1.set_style(3)#直方圖類型
56 worksheet.insert_chart('D2', chart1, {'x_offset': 25, 'y_offset': 10}) #直方圖插入到 D2位置
57 workbook.close()

  4.效果圖


免責聲明!

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



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