Python讀寫Excel表格(簡單實用)


前言

本文的文字及圖片來源於網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理。
作者:giao窩里giao

首先安裝兩個庫:pip install xlrd、pip install xlwt,如果不知道怎么安裝,可以去小編的Python交流.裙 :一久武其而而流一思(數字的諧音)轉換下可以找到了,里面有最新Python教程項目可拿,不懂的問題多跟里面的人交流,都會解決哦!

1.python讀excel——xlrd
2.python寫excel——xlwt

1.讀excel數據,包括日期等數據

#coding=utf-8
import xlrd
import datetime
from datetime import date
def read_excel():
#打開文件
wb = xlrd.open_workbook(r'test.xlsx')
#獲取所有sheet的名字
print(wb.sheet_names())
#獲取第二個sheet的表明
sheet2 = wb.sheet_names()[1]
#sheet1索引從0開始,得到sheet1表的句柄
sheet1 = wb.sheet_by_index(0)
rowNum = sheet1.nrows
colNum = sheet1.ncols
#s = sheet1.cell(1,0).value.encode('utf-8')
s = sheet1.cell(1,0).value
#獲取某一個位置的數據
# 1 ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
print(sheet1.cell(1,2).ctype)
print(s)
#print(s.decode('utf-8'))
#獲取整行和整列的數據
#第二行數據
row2 = sheet1.row_values(1)
#第二列數據
cols2 = sheet1.col_values(2)
#python讀取excel中單元格內容為日期的方式
#返回類型有5種
for i in range(rowNum):
if sheet1.cell(i,2).ctype == 3:
d = xlrd.xldate_as_tuple(sheet1.cell_value(i,2),wb.datemode)
print(date(*d[:3]),end='')
print('\n')

if __name__ == '__main__':
read_excel()~

運行效果

 

 


2.往excel寫入數據

#coding=utf-8
import xlwt
#設置表格樣式
def set_stlye(name,height,bold=False):
#初始化樣式
style = xlwt.XFStyle()
#創建字體
font = xlwt.Font()
font.bold = bold
font.colour_index = 4
font.height = height
font.name =name
style.font = font
return style

#寫入數據
def write_excel():
f = xlwt.Workbook()
#創建sheet1
sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True)
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_stlye("Time New Roman",220,True))
i,j = 1,0
while i <4*len(column0): #控制循環:每次加4
#第一列
sheet1.write_merge(i,i+3,0,0,column0[j],set_stlye('Arial',220,True))
#最后一列
sheet1.write_merge(i,i+3,7,7)
i += 4
sheet1.write_merge(21,21,0,1,u'合計',set_stlye("Time New Roman",220,True))

i=0
while i<4*len(column0): #控制外層循環:每次加4
for j in range(0,len(status)): #控制內層循環:設置每一行內容
sheet1.write(i+j+1,1,status[j])
i += 4

#創建sheet2
sheet2 = f.add_sheet(u'sheet2',cell_overwrite_ok=True)
row0 = [u'姓名',u'年齡',u'出生日期',u'愛好',u'關系']
column0 = [u'UZI',u'Faker',u'大司馬',u'PDD',u'馮提莫']

#生成第一行
for i in range(0,len(row0)):
sheet2.write(0,i,row0[i],set_stlye('Times New Roman',220,True))

#生成第一列
for i in range(0,len(column0)):
sheet2.write(i+1,0,column0[i],set_stlye('Times New Roman',220,True))
f.save('data.xls')

if __name__ == '__main__':
write_excel()~
在data.xls種生成了sheet1和sheet2:

 

 

 

 

 本次分享結束,如果你還有不懂的,可以去小編的Python交流.裙 :一久武其而而流一思(數字的諧音)轉換下可以找到了,里面有最新Python教程項目可拿,不懂的問題多跟里面的人交流,都會解決哦!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM