Django और xlrd, मेमोरी से पढ़ना



excel (1)

मेरी योजना एक प्रयोक्ता को एक्सल फाइल अपलोड करने देने के लिए, एक बार अपलोड की गई है, मैं अपलोड करने योग्य फॉर्म को प्रदर्शित कर रहा हूं जिसमें अपलोड किए गए एक्सेल की सामग्री होती है, जब एक बार उपयोगकर्ता पुष्टि करता है कि इनपुट सही है, तो वह बचत बटन को हिट करता है और ये आइटम सहेजे जाते हैं कुछ मॉडल पर

इसके लिए, मैंने यह दृश्य और रूप लिखा है:

प्रपत्र:

IMPORT_FILE_TYPES = ['.xls', ]

class XlsInputForm(forms.Form):
    input_excel = forms.FileField(required= True, label= u"Upload the Excel file to import to the system.")

    def clean_input_excel(self):
        input_excel = self.cleaned_data['input_excel']
        extension = os.path.splitext( input_excel.name )[1]
        if not (extension in IMPORT_FILE_TYPES):
            raise forms.ValidationError( u'%s is not a valid excel file. Please make sure your input file is an excel file (Excel 2007 is NOT supported.' % extension )
        else:
            return input_excel

राय:

def import_excel_view(request):
    if request.method == 'POST':
        form = XlsInputForm(request.POST, request.FILES)
        if form.is_valid():
            input_excel = request.FILES['input_excel']
            # I need to open this input_excel with input_excel.open_workbook()
            return render_to_response('import_excel.html', {'rows': rows})
    else:
        form = XlsInputForm()

    return render_to_response('import_excel.html', {'form': form})

जैसा कि आप # I need to open this input_excel with input_excel.open_workbook() पर देख सकते हैं # I need to open this input_excel with input_excel.open_workbook() मुझे स्मृति से पढ़ने की ज़रूरत है लेकिन open_workbook किसी फ़ाइल से पढ़ता है, कहीं इस इनपुट को सहेजे बिना, मैं इसे कैसे पढ़ सकता हूँ?


if form.is_valid():
    input_excel = request.FILES['input_excel']
    book = xlrd.open_workbook(file_contents=input_excel.read())

    # your work with workbook 'book'

    return render_to_response('import_excel.html', {'rows': rows})

जब file_contents वैकल्पिक खोजशब्द प्रदान किया जाता है, filename कीवर्ड का उपयोग नहीं किया जाएगा।

हैप्पी कोडिंग





xlrd