Das Excel ist wie das linke Bild mit 3 Spalten.
Beim Einfügen in die Datenbank muss ich 2 Spalten manuell hinzufügen, wie das rechte Bild zeigt, und schließlich 5 Spalten in die Datenbank einfügen. Diese 2 zusätzlichen Spalteninformationen werden von anderen Datenbanken abgerufen.
Und eine andere Funktion ist, wenn es bereits eine existierende Datei gibt, die neu hochgeladene Datei überschreibt die bestehende Datei [Snippets in views.py unten]
Ich habe bereits zwei 3-Parteien-Tools ausprobiert, funktioniert aber nicht, also ist es vielleicht noch besser, nur den in django eingebetteten zu verwenden.
Version: Python 2.7. Excel 2013. Django1.8.
Jede Hilfe wird sehr geschätzt. Hope könnte das Detail-Snippet für das Anfügen dieser 2 Spalten bereitstellen:
%Vor%forms.py
%Vor%ansichten.py
%Vor%Kann so sein:
Ich führe meinen Code nicht aus, es ist ein Beispiel
if request.method == "POST":
form = XXXXForm(request.POST,request.FILES)
if form.is_valid():
docfile=request.FILES['docfile']
if isinstance(docfile, (InMemoryUploadedFile, TemporaryUploadedFile)):
book = xlrd.open_workbook(file_contents=docfile.read(), formatting_info=True, on_demand=True)
else:
book = xlrd.open_workbook(filename=docfile, formatting_info=True, on_demand=True)
sheet = book.sheet_by_index(0)
new_csv_file = csv.writer(open('new_filename', 'w'))
# read file
for line in range(1, sheet.nrows):
new_row = [request.session.get('uploader'), request.session.get('date')]
new_row.extend(sheet.row_values(line))
new_csv_file.writerow(new_row)