python的xlwt模塊的常用方法


工作中需要導出數據為excel格式,使用了xlwt模塊,在此記錄一下用到的內容。

1. 創建一個表,設置一個sheet

1 import xlwt
2 
3 workbook = xlwt.Workbook(encoding='utf8')
4 worksheet = workbook.add_sheet(u'sheet1')

2. 設置列寬,cols_num是列的數目,可以通過修改12這個值,修改列的寬度

1 for c in range(cols_num):
2     worksheet.col(c).width = 256 * 12

3.設置行高,修改800為別的值,可以修改行的高度

1 worksheet.row(0).height_mismatch = True
2 worksheet.row(0).height = 800  # 設置行高

4.設置單元格風格,寫成了一個函數。如注釋所示,Font()用來設置單元格字體內容,如字體類型、大小等;borders()設置單元格邊框線粗細;partern()設置單元格背景顏色;XFStyle()設置風格類型;alignment()用來設置了字體水平居中、垂直居中、自動換行。

 1 def body_style(pattern=None):
 2     # 設置excel單元格風格
 3     font = xlwt.Font()  # Create Font
 4     font.name = "SimSun"  # 宋體
 5     font.height = 20 * 12  # 字體大小
 6     style = xlwt.XFStyle()  # Create Style
 7     style.alignment.horz = 2  # 字體居中
 8     style.alignment.vert = 1
 9     style.alignment.wrap = 1
10     if pattern:
11         pat = xlwt.Pattern()
12         pat.pattern = xlwt.Pattern.SOLID_PATTERN  # 設置背景顏色
13         pat.pattern_fore_colour = pattern
14         style.pattern = pat
15     borders = xlwt.Borders()
16     borders.left = 1
17     borders.right = 1
18     borders.top = 1
19     borders.bottom = 1
20     style.font = font
21     style.borders = borders
22     return style

5. falsk導出excel

1 def down():
2         excel = excel()
3         sio = StringIO.StringIO()
4         excel.save(sio)
5         resp = make_response(sio.getvalue())
6         filename = (u'表hh-' + u'-' + time.strftime("%Y-%m-%d", time.localtime(time.time())))
7         resp.headers["Content-Disposition"] = "attachment; filename={}.xls".format(filename)
8         resp.headers['Content-Type'] = 'application/x-xls'
9         return resp

6. 往單元格內寫入數據,合並單元格

1 worksheet.write(m_row, m_col, u'內容', body_style())
2 # 合並單元格,前四個參數分別是起止的行列位置
3 worksheet.write_merge(1, 2, m_col, m_col+3, u'還好', body_style())

7. 在設置字體顏色或者單元格背景顏色的時候,可以使用源碼中0x0D參數來代表不同的顏色,也可以用0-127來表示不同的顏色,寫了以下代碼來測試了一下,方便之后使用

 1 # coding=utf-8
 2 import xlwt
 3 
 4 workbook = xlwt.Workbook(encoding='utf-8')
 5 worksheet = workbook.add_sheet('sheet1')
 6 
 7 for i in range(0, 128):
 8         stylei = xlwt.XFStyle()
 9         patterni = xlwt.Pattern()
10         patterni.pattern = 1
11         # 設置底紋的圖案索引,1為實心,2為50%灰色,對應為excel文件單元格格式中填充中的圖案樣式
12         patterni.pattern_fore_colour = i    # 設置底紋的前景色,對應為excel文件單元格格式中填充中的背景色
13         patterni.pattern_back_colour = 35   # 設置底紋的背景色,對應為excel文件單元格格式中填充中的圖案顏色
14         stylei.pattern = patterni           # 為樣式設置圖案
15         worksheet.write(i, 0, i, stylei)
16 
17 workbook.save('file.xls')

8. 待續,后面根據一些使用的屬性進行補充,此外,目前對於wookbook類的屬性還沒有搞明白怎么使用。

 


免責聲明!

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



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