python讀寫Excel表格程式碼

專注的阿熊發表於2020-05-08

本文透過例項程式碼給大家介紹的非常詳細,具有一定的參考借鑑價值,需要的朋友可以參考下

安裝兩個庫:pip install xlrd、pip install xlwt

 

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'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()~

#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)

 write_excel(外匯術語

 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()~


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

相關文章