django1.8- Informationen manuell beim Hochladen von Excel und Einfügen in die Datenbank anhängen

8

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%     
Héléna 10.12.2015, 08:01
quelle

1 Antwort

6

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)

...

    
mrvol 15.12.2015, 10:42
quelle

Tags und Links