pytohn 操作excel表格常用模組 xlwt xlsxwriter
阿新 • • 發佈:2018-11-12
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 centerView Code14 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(''' 25font: 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表格,儲存檔名
然後是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格式