真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

python處理表格的方法-創(chuàng)新互聯

這篇文章主要探討python處理表格的方法。有一定的參考價值,有需要的朋友可以參考一下,跟隨小編一起來看解決方法吧。

創(chuàng)新互聯公司致力于互聯網網站建設與網站營銷,提供成都做網站、成都網站制作、網站開發(fā)、seo優(yōu)化、網站排名、互聯網營銷、小程序設計、公眾號商城、等建站開發(fā),創(chuàng)新互聯公司網站建設策劃專家,為不同類型的客戶提供良好的互聯網應用定制解決方案,幫助客戶在新的全球化互聯網環(huán)境中保持優(yōu)勢。

python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫??蓮倪@里下載https://pypi.python.org/pypi。下面分別記錄python讀和寫excel。

Python寫excel——xlwt

Python寫excel的難點不在構造一個workbook的本身,而是填充的數據,不過這不在范圍內。在寫excel的操作中也有棘手的問題,比如寫入合并的單元格就是比較麻煩的,另外寫入還有不同的樣式。

詳細代碼如下:

import xlwt
#設置表格樣式
def set_style(name,height,bold=False):
style = xlwt.XFStyle()
font = xlwt.Font()
font.name = name
font.bold = bold
font.color_index = 4
font.height = height
style.font = font
return style
#寫Excel
def write_excel():
f = xlwt.Workbook()
sheet1 = f.add_sheet('學生',cell_overwrite_ok=True)
row0 = ["姓名","年齡","出生日期","愛好"]
colum0 = ["張三","李四","戀習Python","小明","小紅","無名"]
sheet1.write(0,i,row0[i],set_style('Times New Roman',220,True))
#寫第一列
for i in range(0,len(colum0)):
sheet1.write(i+1,0,colum0[i],set_style('Times New Roman',220,True))
sheet1.write(1,3,'2006/12/12')
sheet1.write_merge(6,6,1,3,'未知')#合并行單元格
sheet1.write_merge(1,2,3,3,'打游戲')#合并列單元格
sheet1.write_merge(4,5,3,3,'打籃球')
f.save('test.xls')
if __name__ == '__main__':
write_excel()

結果圖:

python處理表格的方法

在此,對write_merge()的用法稍作解釋,如上述:sheet1.write_merge(1,2,3,3,'打游戲'),即在四列合并第2,3列,合并后的單元格內容為"合計",并設置了style。其中,里面所有的參數都是以0開始計算的。

Python讀excel——xlrd

Python讀取Excel表格,相比xlwt來說,xlrd提供的接口比較多,但過程也有幾個比較麻煩的問題,比如讀取日期、讀合并單元格內容。

下面先看看基本的操作:

python處理表格的方法

整體思路為,打開文件,選定表格,讀取行列內容,讀取表格內數據

詳細代碼如下:

import xlrd
from datetime import date,datetime
file = 'test3.xlsx'
def read_excel():
wb = xlrd.open_workbook(filename=file)#打開文件
print(wb.sheet_names())#獲取所有表格名字
sheet1 = wb.sheet_by_index(0)#通過索引獲取表格
sheet2 = wb.sheet_by_name('年級')#通過名字獲取表格
print(sheet1,sheet2)
print(sheet1.name,sheet1.nrows,sheet1.ncols)
rows = sheet1.row_values(2)#獲取行內容
cols = sheet1.col_values(3)#獲取列內容
print(rows)
print(cols)
print(sheet1.cell(1,0).value)#獲取表格里的內容,三種方式
print(sheet1.cell_value(1,0))
print(sheet1.row(1)[0].value)

運行結果如下:

python處理表格的方法

那么問題來了,上面的運行結果中紅框框中的字段明明是出生日期,可顯示的確實浮點數;同時合并單元格里面應該是有內容的,結果不能為空。

別急,我們來一一解決這兩個問題:

1.python讀取excel中單元格內容為日期的方式

python讀取excel中單元格的內容返回的有5種類型,即上面例子中的ctype:

ctype :  0 empty,1 string,2 number, 3 date,4 boolean,5 error

即date的ctype=3,這時需要使用xlrd的xldate_as_tuple來處理為date格式,先判斷表格的ctype=3時xldate才能開始操作。

詳細代碼如下:

import xlrd
from datetime import date,datetime
print(sheet1.cell(1,2).ctype)
date_value = xlrd.xldate_as_tuple(sheet1.cell_value(1,2),wb.datemode)
print(date_value)
print(date(*date_value[:3]))
print(date(*date_value[:3]).strftime('%Y/%m/%d'))

python處理表格的方法

2.獲取合并單元格的內容

在操作之前,先介紹一下merged_cells()用法,merged_cells返回的這四個參數的含義是:(row,row_range,col,col_range),其中[row,row_range)包括row,不包括row_range,col也是一樣,即(1, 3, 4, 5)的含義是:第1到2行(不包括3)合并,(7, 8, 2, 5)的含義是:第2到4列合并。

詳細代碼如下:

print(sheet1.merged_cells)print(sheet1.cell_value(1,3))
print(sheet1.cell_value(4,3))
print(sheet1.cell_value(6,1))

python處理表格的方法

發(fā)現規(guī)律了沒?是的,獲取merge_cells返回的row和col低位的索引即可! 于是可以這樣批量獲取:

詳細代碼如下:

merge = []
print(sheet1.merged_cells)
for (rlow,rhigh,clow,chigh) in sheet1.merged_cells:
merge.append([rlow,clow])
for index in merge:
print(sheet1.cell_value(index[0],index[1]))

運行結果跟上圖一樣,如下:

python處理表格的方法

關于python處理表格的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


當前名稱:python處理表格的方法-創(chuàng)新互聯
瀏覽路徑:http://weahome.cn/article/djsioi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部