xlwt:python的寫excel模組

來源:互聯網
上載者:User

標籤:sheet   匯入   code   odi   xls   沒有   name   xfs   form   

最近工作時碰到了將資料匯出,產生一個excel表,對其中的部分資料進行統計,並給其中部分合格資料添加對應的背景顏色的功能需求,於是乎,對Python中寫excel的模組xlwt研究了一下,在工作過程中發現,想要實現資料統計的話,xlwt並沒有直接的公式,而是給了一個把內容以公式的格式寫入excel的方法,所以又對excel的公式什麼的研究了一下,也算是終於實現了想要的功能,現把覺得用處比較大的記錄一下,以便以後用到的時候可以直接撿起來用。

xlwt的安裝

很簡單,可以直接使用pip安裝

pip install xlwt

xlwt的匯入

很簡單,直接import即可

import xlwt

最簡單的例子(xltw使用的座標和excel表的座標不同,excel有兩種座標表示方式,但都是從1開始,例如左上方第一個儲存格為A1(字母為橫座標,數字為縱座標)或者R1C1(R1表示縱座標,C1表示橫座標),而xlwt模組中,座標的數字則是從0開始左上方第一個儲存格的座標為(0,0),其中的一個數字為縱座標,第二個數字為橫座標)

import xlwt
xls = xlwt.Workbook(encoding="utf-8") # 建立一個xls對象,用來儲存對excel表的操作sheet1 = xls.add_sheet(‘成績表‘, cell_overwrite_ok=True) # 給 xls 添加一張‘成績表’的表格sheet1.write(0, 0, ‘學生姓名‘) # 在座標為0,0的儲存格內新增內容‘學生姓名‘sheet1.write(0, 1, ‘成績‘) # 在座標為1,1的儲存格內新增內容‘成績‘  sheet1.write(0, 2, ‘評語‘) # 在座標為0,2的儲存格內新增內容‘評語‘xls.save(‘測試表‘) # 將xls儲存為‘測試表‘

即可產生如如所示的excel表

 設定字型屬性

import xlwtworkbook = xlwt.Workbook(encoding = ‘utf-8‘)worksheet = workbook.add_sheet(‘測試表‘)font = xlwt.Font()    #  建立一個font對象,用來儲存對字型進行的操作font.name = ‘微軟雅黑‘    # 將字型設定為‘微軟雅黑‘font.bold = True    # 設定字型加粗font.underline = True    # 設定字型加底線font.italic = True    # 設定字型傾斜style = xlwt.XFStyle()    # 建立一個style對象,用來儲存excel的樣式style.font = font    # 將字型資訊儲存到style對象中worksheet.write(0, 0, ‘無字型格式‘)worksheet.write(1, 0, ‘有字型格式‘, style)    # 在座標為1,0的儲存格內新增內容‘有字型格式‘,並帶有字型屬性workbook.save(‘測試表.xlsx‘)

產生如如所示的excel表

 

設定背景圖案

import xlwtworkbook = xlwt.Workbook()worksheet = workbook.add_sheet(‘測試表‘)pattern = xlwt.Pattern()    # 建立一個pattern對象,用來儲存儲存格背景的樣式pattern.pattern = 0x01    # 設定儲存格的背景圖案樣式(0x01-0x12共18種樣式)pattern.pattern_fore_colour = xlwt.Style.colour_map[‘yellow‘]    # 設定儲存格的背景顏色style = xlwt.XFStyle()style.pattern = pattern    # 將背景顏色資訊儲存到styke對象中worksheet.write(0, 0, ‘有背景顏色‘, style)    # 在座標為0,0的儲存格內新增內容‘有背景‘,並帶有背景顏色workbook.save(‘測試表.xlsx‘)

產生如如所示的excel表

 

合併儲存格

import xlwtworkbook = xlwt.Workbook()worksheet = workbook.add_sheet(‘測試表‘)worksheet.write_merge(0, 0, 0, 1, ‘合并兩列‘)    # 將座標為0,0和0,1的兩列合并,並新增內容‘合并兩列‘worksheet.write_merge(1, 2, 0, 0, ‘合并兩行‘)    # 將座標為1,0和2,0的兩行合并,並新增內容‘合并兩行‘worksheet.write_merge(3, 5, 0, 2, ‘合并三行三列‘)    # 將縱座標為3-5橫座標為0-2的三行三列合并,並新增內容‘合并三行三列‘workbook.save(‘測試表.xlsx‘)

產生如如所示的excel表

 

 設定儲存格的列寬(xlwt中沒有專門的設定行高的方法,可通過設定儲存格的字型大小調整行高)(xlwt中列寬的單位為預設字型(10號字)的0的寬度的1/256)

import xlwtbook = xlwt.Workbook(encoding=‘utf-8‘)sheet = book.add_sheet(‘測試表‘)first_col=sheet.col(0)    # 獲得測試表中橫座標為0的列first_col.width=256*20    # 將或的的列的寬設定為256*20個單位,即20個10號字的0的寬度book.save(‘測試表.xlsx‘)

產生如如所示的excel表

在儲存格插入入公式

import xlwtworkbook = xlwt.Workbook()worksheet = workbook.add_sheet(‘測試表‘)worksheet.write(0, 0, 1)worksheet.write(0, 1, 2)worksheet.write(0, 2, xlwt.Formula(‘A1*B1‘))    # 在座標為0,2的儲存格儲存格內添加一個公式,公式內容為‘=A1*B1’,顯示的值為A1與B1兩儲存格的值得積:2worksheet.write(0, 3, xlwt.Formula(‘SUM(A1,B1)‘))    # 在座標為0,3的儲存格儲存格內添加一個公式,公式內容為‘=SUM(A1,B1)’,顯示的值為A1與B1兩儲存格的值得和:3workbook.save(‘測試表.xlsx‘)

產生如如所示的excel表

另附部分excel公式(好吧,我承認是我在工作中用到的)

統計數量(COUNTIF(地區,條件))

例子1:統計1出現的次數

例子2:統計不是1的值出現的次數

乘積之和(SUMPRODUCT(數組1,數組2, ··· ···)):

例子:計算數組1和數組2的對應位置的數的乘積的和

條件求和(SUMIF(條件地區,判斷條件,運算地區)(若省略運算地區,則條件地區即是運算地區))

例子:在A1-A6範圍內值為1的儲存格,在B1-B6範圍內對應的儲存格的值的和

多條件求和(SUMIFS(運算地區,條件地區1,判斷條件1,條件地區2,判斷條件2,··· ···))

例子:在A1-A6範圍內值為1,在B1-B6範圍內值為1的儲存格,在C1-C6範圍內對應的儲存格的值的和

 

xlwt:python的寫excel模組

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.