python獲取Excel數據


Python中一般使用xlrd(excel read)來讀取Excel文件,使用xlwt(excel write)來生成Excel文件(可以控制Excel中單元格的格式),需要注意的是,用xlrd讀取excel是不能對其進行操作的,詳細的介紹,基本上都在代碼中寫明

直接放代碼:

#coding=utf8
# 導入xlrd模塊
import xlrd
from xlutils.copy import copy
#設置文件名和路徑
fname = 'd:/TestData.xlsx'
# 打開文件
filename = xlrd.open_workbook(fname)
#獲取當前文檔的表(得到的是sheet的個數,一個整數)
sheets=filename.nsheets



#獲取sheet對象,方法有3種:
# 第一種:#通過sheet名字來獲取,當然如果你知道sheet名字了可以直接指定
# 得到的是一個列表集合[u'etsy_sheet']
sheet_list = filename.sheet_names()
#獲取指定的sheet名的表,sheet結果:(<xlrd.sheet.Sheet object at 0x027FC890>)
# 找不到報錯:xlrd.biffh.XLRDError: No sheet named <'etsy_sheet1'>
# sheet=filename.sheet_by_name(sheet_list[0])

#第二種
# sheet=filename.sheet_by_index(0)     #通過sheet索引獲得sheet對象
# 第三種:
sheet = filename.sheets()[0] #通過sheet索引獲得sheet對象
# print sheet
#獲取行數
nrows = sheet.nrows
# 獲取列數
ncols = sheet.ncols
#獲取第一行,第一列數據數據
cell_value = sheet.cell_value(1,1)
'''
###除了cell值內容外還有附加屬性,如:
'likai:輸出text:"likai"  或者
2018-1-25 13:44:49輸出xldate:43125.57278935185

'''
###除了cell值內容外還有附加屬性,如:text:"likai"后者2018-1-25 13:44:49輸出xldate:43125.57278935185
cell_value1 = sheet.cell(3,0)
print cell_value1

#獲取第一行數據
row_data = sheet.row_values(1)
#獲取第一列,第四行一下的數據
col_data = sheet.col_values(0,4)
#獲取各行數據
row_list=[]
for i in range(0,nrows):
    row_datas = sheet.row_values(i)
    row_list.append(row_datas)
# print row_list




對於讀取和生成Excel文件都非常容易處理,但是對於已經存在的Excel文件進行修改就比較麻煩了,當然可以一行一行的將數據讀取出來,然后在保存,除此之外,還有一個直接copy,將所有的數據copy到另外一個表中,使用一個xlutils(依賴於xlrd和xlwt)提供復制excel文件內容和修改文件的功能。其實際也只是在xlrd.Book和xlwt.Workbook之間建立了一個管道而已

#文件copy
wb = copy(filename)#<xlwt.Workbook.Workbook object at 0x025EE1F0>
new_sheet = wb.get_sheet(0)#<xlwt.Worksheet.Worksheet object at 0x027F3EB0>#此時new_sheet和原表內容一樣,可以再擴充
new_sheet.write(3,3,"new wenjian")
wb.save("d:/TestData1.xlsx")


免責聲明!

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



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