Python簡(jiǎn)單讀寫(xiě)Xls格式文檔的方法示例
本文實(shí)例講述了Python簡(jiǎn)單讀寫(xiě)Xls格式文檔的方法。分享給大家供大家參考,具體如下:
1. 模塊安裝
使用pip install
命令安裝,
即:
pip install xlrd
pip install xlwt
如下圖:
2. python 代碼
import xlrd import xlwt import datetime def set_style(name,height,format,bold=False): style = xlwt.XFStyle() if format.strip()!='': style.num_format_str =format font = xlwt.Font() font.name=name font.bold=bold font.color_index=4 font.height=height alignment = xlwt.Alignment() #HORZ_GENERAL, HORZ_LEFT, HORZ_CENTER, HORZ_RIGHT, HORZ_FILLED, HORZ_JUSTIFIED, HORZ_CENTER_ACROSS_SEL, HORZ_DISTRIBUTED alignment.horz = xlwt.Alignment.HORZ_CENTER #VERT_TOP, VERT_CENTER, VERT_BOTTOM, VERT_JUSTIFIED, VERT_DISTRIBUTED alignment.vert = xlwt.Alignment.VERT_CENTER style.alignment = alignment style.font=font return style def set_colstyle(sheet,cindex): col=sheet.col(cindex) col.width =256*20 #col.height =100 def writeXls(path): wb = xlwt.Workbook() sheet = wb.add_sheet('測(cè)試',cell_overwrite_ok=True) set_colstyle(sheet,3) #標(biāo)題 heads=['姓名','學(xué)科','分?jǐn)?shù)','日期'] for h in range(0,len(heads)): sheet.write(0,h,heads[h],set_style('Arial',300,'',True)) #數(shù)據(jù) sheet.write_merge(1,2,0,0,'張三',set_style('Arial',300,'',False)) sheet.write(1,1,'語(yǔ)文',set_style('Arial',240,'',False)) sheet.write(1,2,85,set_style('Arial',240,'',False)) sheet.write(1,3,datetime.date.today(),set_style('Arial',240,'yyyy/mm/dd',False)) sheet.write(2,1,'數(shù)學(xué)',set_style('Arial',240,'',False)) sheet.write(2,2,85,set_style('Arial',240,'',False)) sheet.write(2,3,datetime.date.today(),set_style('Arial',240,'yyyy/mm/dd',False)) sheet.write_merge(3,4,0,0,'李四',set_style('Arial',300,'',False)) sheet.write(3,1,'語(yǔ)文',set_style('Arial',240,'',False)) sheet.write(3,2,95,set_style('Arial',240,'',False)) sheet.write(3,3,datetime.date.today(),set_style('Arial',240,'yyyy/mm/dd',False)) sheet.write(4,1,'數(shù)學(xué)',set_style('Arial',240,'',False)) sheet.write(4,2,95,set_style('Arial',240,'',False)) sheet.write(4,3,datetime.date.today(),set_style('Arial',240,'yyyy/mm/dd',False)) wb.save(path) def ismerge(sheet,merge,r,c): #merge=sheet.merged_cells for m in merge: if r>=m[0] and r<m[1] and c==m[2]: r=m[0] c==m[2] break return r,c def readXls(path): wb=xlrd.open_workbook(path,formatting_info=True) #sheetname=wb.sheet_names()[0] sheet=wb.sheet_by_index(0) rows=sheet.nrows cols=sheet.ncols merge=sheet.merged_cells #merged_cells返回的這四個(gè)參數(shù)的含義是:(row,row_range,col,col_range), #其中[row,row_range)包括row,不包括row_range print('--------------------------------------------------------------------') for r in range(0,rows): listStr = [] for c in range(0,cols): merg=ismerge(sheet,merge,r,c) if (sheet.cell(merg[0],merg[1]).ctype==3): data_value=xlrd.xldate_as_tuple(sheet.cell_value(merg[0],merg[1]),wb.datemode) #print(datetime.date(*data_value[:3]).strftime('%Y/%m/%d')) listStr.append(datetime.date(*data_value[:3]).strftime('%Y/%m/%d')) else: #print(sheet.cell_value(merg[0],merg[1])) listStr.append(sheet.cell_value(merg[0],merg[1])) #print(sheet.cell(merg[0],merg[1]).value) #print(sheet.cell(r,c).ctype) print(' |\t'.join(str(s) for s in listStr if s not in [None])) print('--------------------------------------------------------------------') if __name__ == '__main__': #writeXls('H:\測(cè)試.xls') readXls('H:\測(cè)試.xls')
3.效果展示
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python操作Excel表格技巧總結(jié)》、《Python文件與目錄操作技巧匯總》、《Python文本文件操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
PyTorch詳解經(jīng)典網(wǎng)絡(luò)ResNet實(shí)現(xiàn)流程
ResNet全稱residual neural network,主要是解決過(guò)深的網(wǎng)絡(luò)帶來(lái)的梯度彌散,梯度爆炸,網(wǎng)絡(luò)退化(即網(wǎng)絡(luò)層數(shù)越深時(shí),在數(shù)據(jù)集上表現(xiàn)的性能卻越差)的問(wèn)題2022-05-05Python實(shí)現(xiàn)的本地文件搜索功能示例【測(cè)試可用】
這篇文章主要介紹了Python實(shí)現(xiàn)的本地文件搜索功能,涉及Python針對(duì)文件與目錄的遍歷、判斷、編碼轉(zhuǎn)換、查找等相關(guān)操作技巧,需要的朋友可以參考下2018-05-05基于python traceback實(shí)現(xiàn)異常的獲取與處理
這篇文章主要介紹了基于python traceback實(shí)現(xiàn)異常的獲取與處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12解決python明明pip安裝成功卻找不到包的問(wèn)題
今天小編就為大家分享一篇解決python明明pip安裝成功卻找不到包的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08python目標(biāo)檢測(cè)SSD算法預(yù)測(cè)部分源碼詳解
這篇文章主要為大家介紹了python目標(biāo)檢測(cè)SSD算法預(yù)測(cè)部分源碼詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05使用相同的Apache實(shí)例來(lái)運(yùn)行Django和Media文件
這篇文章主要介紹了使用相同的Apache實(shí)例來(lái)運(yùn)行Django和Media文件,Django是最具人氣的Python web開(kāi)發(fā)框架,需要的朋友可以參考下2015-07-07教你掌握分布式訓(xùn)練PyTorch?DDP到Accelerate到Trainer
這篇文章主要為大家介紹了教你掌握分布式訓(xùn)練PyTorch?DDP到Accelerate到Trainer2023-02-02