python xlrd获取第一行值

2024-05-20 09:09:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用xlrd和python来提取excel数据,一切都很好,数据提取也很好,但是代码只提取最后一行数据。

这是我的电子表格

+-------------------+------------+------------------------+
| polling_station_1 | Cairo      | 7734                   |
+-------------------+------------+------------------------+
| polling_station_2 | Giza       | 13332                  |
+-------------------+------------+------------------------+
| polling_station_3 | Alexandria | 10901                  |
+-------------------+------------+------------------------+

这是我的代码

import xlrd

excel_sheet = xlrd.open_workbook("teacher.xlsx")
sheet1= excel_sheet.sheet_by_name('parents')

for i in range(0, sheet1.nrows):        
      row = sheet1.row_slice(i)        
      Gname = row[0].value        
      Fname = row[1].value        
      Lname = row[2].value

print Gname
print Fname
print Lname

和结果

polling_station_3  
Alexandria 
10901    

这是最后一行,但我要第一行的数据 注意:更改的范围仍显示在最后一行。

任何人都请弄清楚


Tags: 数据代码valueexcelfnamesheetrowprint
3条回答
import xlrd

excel_sheet = xlrd.open_workbook("teacher.xlsx")
sheet1= excel_sheet.sheet_by_name('parents')

for i in range(0, sheet1.nrows):        
    row = sheet1.row_slice(i)        
    Gname = row[0].value        
    Fname = row[1].value        
    Lname = row[2].value

# these are outside the for loop so only printed for last row
print Gname
print Fname
print Lname

    # indent them to here and they will be printed for all rows
    print Gname
    print Fname
    print Lname        

你有编码问题。通过更改打印语句,可以看到结果。

import xlrd

excel_sheet = xlrd.open_workbook("teacher.xlsx")
sheet1= excel_sheet.sheet_by_name('parents')

for i in range(0, sheet1.nrows):        
    row = sheet1.row_slice(i)        
    Gname = row[0].value        
    Fname = row[1].value        
    Lname = row[2].value

    print Gname
    print Fname
    print Lname

您正在遍历行,并且当前只打印最终结果。

excel_sheet = xlrd.open_workbook("teacher.xlsx")
sheet1= excel_sheet.sheet_by_name('parents')
row = sheet1.row(0)  # 1st row

如果打印行输出为

[text:u'polling_station_1', text:u'cairo', text:u'7734']

现在对其进行切片或逐个获取值

Gname = row[0].value        
Fname = row[1].value        
Lname = row[2].value

print Gname
print Fname
print Lname 

现在结果将是

olling_station_3 
Alexandria 
10901    

如果要更改行

row = sheet1.row(0)  # change row(0) Value

相关问题 更多 >