1. 程式人生 > >pytohn 操作excel表格常用模組 xlwt xlsxwriter

pytohn 操作excel表格常用模組 xlwt xlsxwriter

1、匯入模組   import xlwt 2、建立workbook(其實就是excel,後來儲存一下就行)   workbook = xlwt.Workbook(encoding = 'ascii') 3、建立表
  worksheet = workbook.add_sheet('My Worksheet')
4、往單元格內寫入內容   worksheet.write(0, 0, label = 'Row 0, Column 0 Value')
5、儲存   workbook.save('Excel_Workbook.xls') 由於我的需求比較簡單,所以這上面沒遇到什麼問題,唯一的就是建議還是用ascii編碼,不然可能會有一些詭異的現象。今天主要寫一些xlwt與xlsxwriter的區別。先來看看簡單的xlwt寫檔案
 1 import xlwt
 2 # 建立一個workbook 設定編碼
 3 workbook = xlwt.Workbook(encoding = 'utf-8')
 4 # 建立一個worksheet
 5 worksheet = workbook.add_sheet('My Worksheet')
 6 # 寫入excel
 7 # 引數對應 行, 列, 值
 8 ''' height:行高;
 9     name:字型
10     bold:字型加粗
11     wrap :自動換行
12     horiz:水平對其方式
13     vert:垂直對齊方式. top center 
14 pattern :背景樣式 solid, 15 fore-colour: 單元格背景顏色 grey25; 16 border: 邊框線 17 18 19 ''' 20 def set_widths(sheet, width_list): 21 '''���ù�������п��б�''' 22 for index, w in enumerate(width_list): 23 sheet.col(index).width = w 24 cell_xf = xlwt.easyxf(''' 25
font: 26 height 220, 27 name SimSun; 28 align: 29 wrap on, 30 vert centre, 31 horiz left; 32 borders: 33 left THIN, 34 right THIN, 35 top THIN, 36 bottom THIN; 37 ''') 38 # worksheet.col(3).width = 256 * 16 設定寬度 39 # worksheet.col(4).width = 256 * 18 40 # worksheet.write(0,0,label = 'this is test',style=style) 41 # worksheet.write(0,2,label = 'this',style=style) 42 # worksheet.write(4,3,label = 'this is',style=cell_xf) 43 # import time,datetime 44 # time=datetime.datetime.now() 45 # worksheet.row(4).set_cell_date(6,time,cell_xf) 46 worksheet.write_merge(0,4,2,4,'88888888888',cell_xf) #合併單元格 47 48 49 50 # 儲存 51 workbook.save('Excel_test31.xls') #生成excele表格,儲存檔名
View Code

然後是xlsxwriter寫入

 1 def set_widths(sheet, width_list):
 2     '''���ù�������п��б�'''
 3     for index, w in enumerate(width_list):
 4         sheet.set_column(1,index,w)
 5 from xlsxwriter.workbook import Workbook
 6 
 7 workbook = Workbook('Demo770.xlsx')    # 建立一個名為Dome2.xlsx的表格
 8 # header_format = workbook.add_format({
 9 #             'bg_color': 'blue',
10 #             'bold': True,
11 #             'text_wrap': True,
12 #             'valign': 'vcenter',
13 #             'indent': 1,
14 #         })
15 
16 report_title_xf = workbook.add_format({
17     'font_name': 'SimSun',       #字型
18     'bold': True,                 #是否加粗
19     'text_wrap': True,           #是否自動換行
20     'valign': 'vcenter',         #垂直對齊方式
21     'align': 'left',             #水平對齊
22     # 'fg_color': '#436EEE',       #前景色
23 
24     'bg_color': '#cccccc    ',     #背景色
25     'pattern':1,               #陰影樣式
26     'bottom': 1                 #邊框線
27     'left': 1,                  #邊框線
28     'right': 1,                 #邊框線
29     'top': 1,                   #邊框線
30     'num_format': 'yyyy-mm-dd' #時間格式
31 })
32 
33 
34 
35 
36 worksheet = workbook.add_worksheet('xxxx')  # 新增工作表
37 # report_title_xf=worksheet.set_row(0, 100, report_title_xf)    設定單元格高度
38 
39 # set_widths(worksheet,[15,30,7.5,7.5,15,15,38,38,38,38])   設定單元格寬度(14行一個函式實現)
40 
41 
42 # worksheet.set_column('A:A', 18)設定寬度
43 worksheet.set_column('B:B',10)#設定寬度
44 worksheet.set_column('C:C',10)
45 worksheet.set_column(3,3,30)
46 worksheet.set_column(0,0,50)
47 
48 # worksheet.set_row(1,40)
49 
50 
51 worksheet.write('C1','6666666666666 ',report_title_xf)#寫入工作表(1. 寫入位置2. 寫入資料3.表格樣式
52 # worksheet.merge_range(3,2,0,4,'8585858585',report_title_xf) 合併單元格引數(first_row,first_cow.last_row,last_cow,data 樣式)
53 worksheet.merge_range(0,2,4,4,'8585858585',report_title_xf)
54 workbook.close()

還有一個在專案中用到的時間日期格式化

vul_info_sheet.row(row_index).set_cell_date(colx_start+tmp_col_index+9, date_found,cell_date_xf)
                        vul_info_sheet.write_datetime(_index, col_index, date_found, cell_date_xf)#cell_data_xf單元格樣式         date_found是datetime格式