Я загружаю файл excel в модель django и читаю его с помощью xlrd и сохраняю в базе данных. Требуется 1 минута, чтобы загрузить около 20 тыс. Строк .. но мой файл имеет 160 тыс. Строк, которые потребовались в течение 8 минут, поэтому мне нужно сократить время на чтение и хранение, чтобы быть меньше, чем мин для такого типа массового файла. Что делать, чтобы уменьшить время загрузки. какие все возможные способы?django bulk excel file read слишком медленно, используя xlrd
def upload_file(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
newdoc = Upload(file = request.FILES['file'])
newdoc.save()
xlbook = open_workbook(newdoc.file.name)
sheet = xlbook.sheet_by_index(0)
field = [sheet.cell_value(0,c) for c in range(sheet.ncols)]
temp = [sheet.cell_value(c,0) for c in range(sheet.nrows)]
value = [[sheet.cell_value(r,c) for c in range(sheet.ncols)]for r in range (sheet.nrows)]
data = {}
if request.POST.get('check'):
Sales.objects.filter(OrderID__in = temp[1:]).delete()
for n in range(0,sheet.nrows):
if n > 0:
list = value[n]
for i in range(0,len(field)):
data[field[i]] = list[i]
if data:
date_value = xldate_as_tuple(sheet.cell_value(n,1),xlbook.datemode)
data["Date"] = datetime(*date_value[:3])
add = Sales.objects.get_or_create(**data)
return HttpResponseRedirect('/salesdata/')
if request.method == 'GET':
form = UploadFileForm(request.POST, request.FILES)
return render(request,'salesdata/upload.html', {'form': form})
Ваш вопрос о эффективном чтении с 'xlrd' и менее о' Django'. – Constantinius
, конечно же, да! но есть ли какой-либо пакет, который работает быстрее, читает excel и пишет для модели django. –