Python簡單讀寫Xls格式文檔的方法示例
本文實例講述了Python簡單讀寫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('測試',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,'語文',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,'語文',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返回的這四個參數(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:\測試.xls')
readXls('H:\測試.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入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
30秒學(xué)會30個超實用Python代碼片段【收藏版】
許多人在數(shù)據(jù)科學(xué)、機器學(xué)習(xí)、web開發(fā)、腳本編寫和自動化等領(lǐng)域中都會使用Python,它是一種十分流行的語言。本文將簡要介紹30個簡短的、且能在30秒內(nèi)掌握的代碼片段,感興趣的朋友一起看看吧2019-10-10
Pytorch:dtype不一致問題(expected dtype Double but&
這篇文章主要介紹了Pytorch:dtype不一致問題(expected dtype Double but got dtype Float),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02
Python腳本實現(xiàn)網(wǎng)卡流量監(jiān)控
這篇文章主要介紹了Python腳本實現(xiàn)網(wǎng)卡流量監(jiān)控,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-02-02
Windows系統(tǒng)下安裝Python的SSH模塊教程
這篇文章主要介紹了Windows系統(tǒng)下安裝Python的SSH模塊教程,本文涵蓋了pycrypto、ecdsa、paramiko、OpenSSH、SSH等模塊的安裝,需要的朋友可以參考下2015-02-02
Python爬蟲過程解析之多線程獲取小米應(yīng)用商店數(shù)據(jù)
這篇文章主要介紹了Python爬蟲過程解析之多線程獲取小米應(yīng)用商店數(shù)據(jù),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
python 獲取list特定元素下標(biāo)的實例講解
下面小編就為大家分享一篇python 獲取list特定元素下標(biāo)的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
使用PySpark實現(xiàn)數(shù)據(jù)清洗與JSON格式轉(zhuǎn)換的實踐詳解
在大數(shù)據(jù)處理中,PySpark?提供了強大的工具來處理海量數(shù)據(jù),特別是在數(shù)據(jù)清洗和轉(zhuǎn)換方面,本文將介紹如何使用?PySpark?進行數(shù)據(jù)清洗,并將數(shù)據(jù)格式轉(zhuǎn)換為?JSON?格式的實踐,感興趣的可以了解下2023-12-12

