python xlrd获取第一行值
我正在使用xlrd和python来提取excel数据,一切都很好,数据提取也很好,但代码只提取最后一行数据 这是我的Excelpython xlrd获取第一行值,python,excel,xlrd,import-from-excel,Python,Excel,Xlrd,Import From Excel,我正在使用xlrd和python来提取excel数据,一切都很好,数据提取也很好,但代码只提取最后一行数据 这是我的Excel +-------------------+------------+------------------------+ | polling_station_1 | Cairo | 7734 | +-------------------+------------+------------------------+ | poll
+-------------------+------------+------------------------+
| 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
[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
和结果
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
# 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
[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
现在将其切片或逐个获取值
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
[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
你有一个编码问题。通过更改打印语句,可以看到结果
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
您正在迭代行,当前只打印最终结果。如果不想迭代行,请将其留给
xlrd
模块使用sheet方法直接获取值。请注意,它是零索引的。您的Gname、Fname、Lname变量包含最后一行,因为它们是在for循环完成对所有行的迭代之后访问的。尝试将打印语句移动到循环中,自己看看。请告诉我一个例子,这样我就无法修复它了?Thanx@Steve,我找到了isse。顺便说一句,谢谢你的努力。