2016-03-26 47 views
1

讀一個專欄中,我想在Excel中的一列讀取數據,這裏是我的代碼:如何使用Python在Excel

import xlrd 

file_location = "location/file_name.xlsx" 

workbook = xlrd.open_workbook(file_location) 

sheet = workbook.sheet_by_name('sheet') 

x = [] 

for cell in sheet.col[9]: 

    if isinstance(cell, float): 

     x.append(cell) 

print(x) 

這是錯誤的,因爲在板材沒有一種方法叫做山口[COL .nu​​m],但我只想提取第8列(H列)中的數據,我該怎麼辦?從任何地點處理數據時

for rownum in range(sheet.nrows): 
    x.append(sheet.cell(rownum, 7)) 
+0

對不起,第8列,而不是9 –

+0

編輯您的原始問題,以編輯您找到的任何錯誤。您可以根據需要多次編輯您的問題。 – idjaw

回答

1

你可以得到第八列的值,這樣

import pandas as pd 

df = pd.ExcelFile('location/test.xlsx').parse('Sheet1') #you could add index_col=0 if there's an index 
x=[] 
x.append(df['name_of_col']) 

然後,您可以只寫新的提取柱與大熊貓一個新的Excel文件df.to_excel()

0

如果你不xlrd鎖定我可能會使用,而不是大熊貓,這是相當不錯的:

0

迄今爲止獲得的所有個最簡單的方法在使用xlrd一個E列的值是col_values()工作方法:

x = [] 
for value in sheet.col_values(8): 
    if isinstance(value, float): 
     x.append(value) 

(請注意,如果你想列H,你應該使用7,因爲指數從0開始)

順便說一句,你可以使用col()獲得細胞對象在列:

x = [] 
for cell in sheet.col(8): 
    if isinstance(cell.value, float): 
     x.append(cell.value) 

找到這個東西的最好的地方就是offici al tutorial(其作爲xlrd,xlwtxlutils的體面參考)。你當然也可以看看documentation和源代碼。

0

我建議這樣做的:

import openpyxl 
fname = 'file.xlsx' 
wb = openpyxl.load_workbook(fname) 
sheet = wb.get_sheet_by_name('sheet-name') 
for rowOfCellObjects in sheet['C5':'C7']: 
    for cellObj in rowOfCellObjects: 
    print(cellObj.coordinate, cellObj.value) 

結果:
C5 70.82
C6 84.82
C7 96.82

注:FNAME指excel文件,get_sheet_by_name( '片名')是指期望的片材和在片[ 'C5': 'C7']範圍爲列提及。

查看link瞭解更多詳情。代碼段也取自這裏。