file_obj = request.FILES.get('uploadcsv','')
#如果传入的是XLS文件
import xlrd
#1.读取XLS内容
bk = xlrd.open_workbook(file_contents = file_obj.read())
#2.或者是告诉它文件路径,如下
#bk = xlrd.open_workbook(path/to/xls)
try:#看是不是XLS的第一张表
sh = bk.sheet_by_index(0)
except:
return render_to_response('admins/message.html',{'message':'没有读取到您的第一张表!'},context_instance=template.RequestContext(request))
#计算文件的总行数
nrows = sh.nrows
reader = []
#再循环将每一行的数据写进一个LIST中备用
for i in range(nrows):
row_data = sh.row_values(i)
reader.append(row_data)
#如果传入的是CSV文件
import StringIO,csv
data = StringIO.StringIO(file_obj.read())
try:
reader = csv.reader(data)
except Exception,e:
return render_to_response('admins/message.html',{'message':'CSV文件没有正常读取,请重新检查后上传!2'},context_instance=template.RequestContext(request))
最后再FOR循环reader这个列表,读出每个数据即可