1. 程式人生 > >python 之 處理excel表的xlwt模組學習記錄

python 之 處理excel表的xlwt模組學習記錄

python 操作excel表的常用模組主要有2個:

1:xlrd:讀取excel表

2:xlwt:建立並寫入excel表

安裝方法:

可以直接下載安裝:https://pypi.python.org/pypi    也可以使用pip3安裝

以下以例項記錄xlwt模組的使用方法

# 建立一個基本的excel表格
book = xlwt.Workbook(encoding='utf-8'# 生成excel檔案並設定編碼為utf8
sheet = book.add_sheet('sheet_name'# 建立第一個sheet 表單
sheet.write(2, 3, label='test data'

# 一個表單裡起始行和列都是從0開始計算,2表示:表單第二行, 3表示:第二行第三列,label表示這個表格的值
book.save('boot.xls'# 保持名為 boot.xls的表

 

# 進行自定義字型樣式的excel表
book = xlwt.Workbook(encoding='utf-8')
sheet = book.add_sheet('sheet1')
style = xlwt.XFStyle()  # 初始化樣式
font = xlwt.Font()  # 初始化字型
font.name = 'Times New Roman' 
# 使用字型的名稱
font.bold = True  # 字型加粗
font.underline = True  # 字型加下劃線
font.italic = True  # 斜體字
style.font = font  # 設定樣式使用的字型
sheet.write(0,0, 'unformated'# 不帶樣式的表單內容
sheet.write(0,1, 'formated', style)  # 帶樣式的表單內容
book.save('boot.xls')

 

# 設定單元格的寬度
book = xlwt.Workbook(encoding='utf-8'
)
sheet = book.add_sheet('sheet1')
sheet.write(0, 0, '測試用例')
sheet.col(0).width = 3333  # 設定表單:sheet1 的第一列所有單元格的寬度
book.save('boot.xls')

 

# 輸入一個日期到單元格
import datetime
book = xlwt.Workbook()
sheet = book.add_sheet('sheet1')
style = xlwt.XFStyle()  # 凡是設定表格屬性,都需要初始化一個樣式
style.num_format_str = 'M/D/YY'  # 設定當前表格的日期格式,以下為其他可選的格式
# D: 表示日期, M:表示月份,Y:表示年,h:表示小時,m:表示分鐘,s:表示秒
# Other options: D-MMM-YY, D-MMM, MMM-YY, h:mm, h:mm:ss, h:mm, h:mm:ss, M/D/YY h:mm, mm:ss, [h]:mm:ss, mm:ss.0
sheet.col(1).width = 3333  # 設定日期表格寬度
sheet.write(0,1, datetime.datetime.today(), style)  # 設定當前表格日期採用style樣式顯示
book.save('boot.xls')

 

# 向表格新增一個公式
book = xlwt.Workbook()
sheet = book.add_sheet('sheet')
sheet.write(0, 0, 5)
sheet.write(0, 1, 2)
sheet.write(1, 0, xlwt.Formula(('A1*B1')))  # 實現第一行第一個欄位和第二個欄位值相乘,寫入到第二行第一個表格內
sheet.write(1, 1, xlwt.Formula('SUM(A1,B1)'))  # 實現第一行第一個欄位和第二個欄位值相加,寫入到第二行第二個表格內
book.save('boot.xls')

 

# 向一個表格新增一個超連結
book = xlwt.Workbook()
sheet = book.add_sheet('sheet_link')
sheet.write(0, 1, xlwt.Formula('HYPERLINK("http://www.baidu.com";"baidu")'))  # 在表格裡建立一個超連結,名稱為:baidu
book.save('boot.xls')

 

# 合併列和行
# 關於write_merge(x,m,y,n)引數說明:x 表示行數,m表示跨行個數, y表示列, n表示跨列個數,行和列的開始計數都為0
book = xlwt.Workbook()
sheet = book.add_sheet('sheet')
sheet.write_merge(0, 0, 1, 3, 'First merge'#
font = xlwt.Font()
font.bold = True
style = xlwt.XFStyle()
style.font = font
sheet.write_merge(1, 2, 0, 3, 'second merge', style)
book.save('boot.xls')

 

# 設定單元格內容的對其方式,
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('My Sheet')
alignment = xlwt.Alignment() # Create Alignment
alignment.horz = xlwt.Alignment.HORZ_CENTER # May be: HORZ_GENERAL, HORZ_LEFT, HORZ_CENTER, HORZ_RIGHT, HORZ_FILLED, HORZ_JUSTIFIED, HORZ_CENTER_ACROSS_SEL, HORZ_DISTRIBUTED
alignment.vert = xlwt.Alignment.VERT_CENTER # May be: VERT_TOP, VERT_CENTER, VERT_BOTTOM, VERT_JUSTIFIED, VERT_DISTRIBUTED
style = xlwt.XFStyle() # Create Style
style.alignment = alignment # Add Alignment to Style
worksheet.write(0, 0, 'Cell Contents', style)
workbook.save('boot.xls')

 

# 為單元格設定背景色
book = xlwt.Workbook()
sheet = book.add_sheet('sheet')
pattern = xlwt.Pattern()  # 初始化一個圖案
pattern.pattern = xlwt.Pattern.SOLID_PATTERN  # 可選:NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12
pattern.pattern_fore_colour = 5  # 背景顏色為黃色
# 可選: 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow , almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray, the list goes on...
style = xlwt.XFStyle()
style.pattern = pattern  # 新增樣式
sheet.write(0, 0, 'Cell content', style)
book.save('boot.xls')