Mój plan to pozwolić użytkownikowi na przesłanie pliku Excela, po przesłaniu Będę wyświetlał formularz edytowalny, który zawiera treść przesłanego programu Excel, gdy użytkownik potwierdzi, że dane wejściowe jest poprawne, on/ona uderza przycisk zapisu, a te elementy są zapisywane w niektórych modelach.Django i Xlrd, czytanie z pamięci
W tym pisałem ten pogląd i formę:
forma:
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
widok:
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})
Jak widać na # I need to open this input_excel with input_excel.open_workbook()
muszę do odczytu z pamięci, ale open_workbook
czyta z pliku, bez zapisywania thi s do czegoś, jak mogę to przeczytać?
działa świetnie, dzięki! – Hellnar
Dla plików unicode można użyć 'book = open_workbook (file_contents = input_excel.read(), encoding_override = 'utf8') –