python操作Excel

lhrbest發表於2019-01-09



python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。可從這裡下載 。

參考:

https://www.cnblogs.com/zhoujie/p/python18.html

http://www.cnblogs.com/snake-hand/p/3153158.html

https://mp.weixin.qq.com/s?__biz=MzA5ODUzOTA0OQ==&mid=2651689342&idx=1&sn=1bfb56fa205decba1d821a4fec07e024&chksm=8b693238bc1ebb2e9e81bc2a370ae30f05d0ae74740993bc74c815aaacb4d991c2e7055f6e09&mpshare=1&scene=1&srcid=0109Gqxa2RAV5SCs320FQprR&key=9493c90210260ceaf9c2fb19f4aa453c320e75f00aed8b15ab95b938cc87412df051fdbf96788e408b2217ee37d9d3f1db506c48153c7677241f00de45692fd7cd97a354e8c5ec0e916c3e734023dd60&ascene=1&uin=MTk5MDM4ODY5&devicetype=Windows-QQBrowser&version=6103000b&lang=zh_CN&pass_ticket=W3PB9Gy%2F%2Fm0ucX4yyJDfLx4tmJE90pRQ3pBnrbnMvKA%3D


基本程式碼:

import xlwt
# workbook = xlwt.Workbook(encoding='utf-8')#建立workbook 其實就是execl,
# worksheet = workbook.add_sheet('my_worksheet') #建立表,如果想建立多個,直接在後面再add_sheet
# worksheet.write(0,0,label ='Row 0,Column 0 Value') #3個引數,第一個參數列示行,從0開始,第二個參數列示列,從0開始,第三個參數列示插入的數值
# workbook.save('./download/execl_lhr.xlsx')  #寫完記得一定要儲存
def set_style(name, height, bold=False):
    style = xlwt.XFStyle()  # 初始化樣式
    font = xlwt.Font()  # 為樣式建立字型
    font.name = name
    font.bold = bold
    font.colour_index = 2
    font.height = height
    style.font = font
    return style
#寫excel
def write_excel():
    f = xlwt.Workbook(encoding='gbk')  # 建立工作薄
    # 建立個人資訊表
    sheet1 = f.add_sheet(u'個人資訊', cell_overwrite_ok=True)
    rowTitle = [u'編號', u'姓名', u'性別', u'年齡']
    rowDatas = [[u'張一', u'男', u'18'], [u'李二', u'女', u'20'], [u'黃三', u'男', u'38'], [u'劉四', u'男', u'88']]
    for i in range(0,len(rowTitle)):
        sheet1.write(0,i,rowTitle[i],set_style('Times New Roman',220,True)) #後面是設定樣式
    for k in range(0,len(rowDatas)):    #先遍歷外層的集合,即每行資料
        rowDatas[k].insert(0,k+1)   #每一行資料插上編號即為每一個人插上編號
        for j in range(0,len(rowDatas[k])): #再遍歷內層集合
            sheet1.write(k+1,j,rowDatas[k][j])          #寫入資料,k+1表示先去掉標題行,另外每一行資料也會變化,j正好表示第一列資料的變化,rowdatas[k][j] 插入資料
    # 建立個人收入表
    sheet1 = f.add_sheet(u'個人收入表',cell_overwrite_ok=True)
    rowTitle2 = [u'編號',u'姓名',u'學歷',u'工資']
    rowDatas2 = [[u'張一',u'本科',u'8000'],[u'李二',u'碩士',u'10000'],[u'黃三',u'博士',u'20000'],[u'劉四',u'教授',u'50000']]
    for i in range(0,len(rowTitle2)):
        sheet1.write(0,i,rowTitle2[i])
    for k in range(0,len(rowDatas2)):    #先遍歷外層的集合
        rowDatas2[k].insert(0,k+1)   #每一行資料插上編號即為每一個人插上編號
        for j in range(0,len(rowDatas2[k])): #再遍歷內層集合
            sheet1.write(k+1,j,rowDatas2[k][j])  #寫入資料,k+1表示先去掉標題行,另外每一行資料也會變化,j正好表示第一列資料的變化,rowdatas[k][j] 插入資料
    f.save('./download/excel_write_base.xlsx')
if __name__ == '__main__':
    #generate_workbook()
    #read_excel()
    write_excel()


程式碼2:

import  xlwt
def set_style(name,height,bold=False):
    style = xlwt.XFStyle()  # 初始化樣式
    font = xlwt.Font()  # 為樣式建立字型
    font.name = name # 'Times New Roman'
    font.bold = bold
    font.color_index = 4
    font.height = height
    # borders= xlwt.Borders()
    # borders.left= 6
    # borders.right= 6
    # borders.top= 6
    # borders.bottom= 6
    style.font = font
    # style.borders = borders
    return style
#寫excel
def write_excel():
    f = xlwt.Workbook() #建立工作簿
    '''
    建立第一個sheet:
        sheet1
    '''
    sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) #建立sheet
    row0 = [u'業務',u'狀態',u'北京',u'上海',u'廣州',u'深圳',u'狀態小計',u'合計']
    column0 = [u'機票',u'船票',u'火車票',u'汽車票',u'其它']
    status = [u'預訂',u'出票',u'退票',u'業務小計']
    #生成第一行
    for i in range(0,len(row0)):
        sheet1.write(0,i,row0[i],set_style('Times New Roman',220,True))
    #生成第一列和最後一列(合併4行)
    i, j = 1, 0
    while i < 4*len(column0) and j < len(column0):
        sheet1.write_merge(i,i+3,0,0,column0[j],set_style('Arial',220,True)) #第一列
        sheet1.write_merge(i,i+3,7,7) #最後一列"合計"
        i += 4
        j += 1
    sheet1.write_merge(21,21,0,1,u'合計',set_style('Times New Roman',220,True))
    #生成第二列
    i = 0
    while i < 4*len(column0):
        for j in range(0,len(status)):
            sheet1.write(j+i+1,1,status[j])
        i += 4
    f.save('./download/excel_write_merge.xlsx') #儲存檔案
if __name__ == '__main__':
    #generate_workbook()
    #read_excel()
    write_excel()



  超連結:

import xlwt
book = xlwt.Workbook()
sheet_index = book.add_sheet('index')
line=0
for i in range(9):
    sheet1 = book.add_sheet(str(i))
    sheet1.write(0,0,str(i))
    link = 'HYPERLINK("#%s";"%s")' % (str(i), str(i))
    sheet_index.write(line, 0, xlwt.Formula(link))
    line+=1
book.save('./download/simple2.xls')






About Me

........................................................................................................................

● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除

● 本文在itpub( http://blog.itpub.net/26736162 )、部落格園( http://www.cnblogs.com/lhrbest )和個人weixin公眾號( xiaomaimiaolhr )上有同步更新

● 本文itpub地址: http://blog.itpub.net/26736162

● 本文部落格園地址: http://www.cnblogs.com/lhrbest

● 本文pdf版、個人簡介及小麥苗雲盤地址: http://blog.itpub.net/26736162/viewspace-1624453/

● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/

● DBA寶典今日頭條號地址:

........................................................................................................................

● QQ群號: 230161599 (滿) 、618766405

● weixin群:可加我weixin,我拉大家進群,非誠勿擾

● 聯絡我請加QQ好友 646634621 ,註明新增緣由

● 於 2019-01-01 06:00 ~ 2019-01-31 24:00 在魔都完成

● 最新修改時間:2019-01-01 06:00 ~ 2019-01-31 24:00

● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解

● 版權所有,歡迎分享本文,轉載請保留出處

........................................................................................................................

小麥苗的微店

小麥苗出版的資料庫類叢書 http://blog.itpub.net/26736162/viewspace-2142121/

小麥苗OCP、OCM、高可用網路班 http://blog.itpub.net/26736162/viewspace-2148098/

小麥苗騰訊課堂主頁 https://lhr.ke.qq.com/

........................................................................................................................

使用 weixin客戶端 掃描下面的二維碼來關注小麥苗的weixin公眾號( xiaomaimiaolhr )及QQ群(DBA寶典)、新增小麥苗weixin, 學習最實用的資料庫技術。

........................................................................................................................

歡迎與我聯絡

 

 



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2375265/,如需轉載,請註明出處,否則將追究法律責任。

相關文章