Planım, kullanıcının yüklendikten sonra bir excel dosyası yüklemesine izin vermektir. Kullanıcı, girdinin doğru olduğunu onayladıktan sonra, yüklenen excel'in içeriğini içeren düzenlenebilir formu görüntüleyecektir. kaydet düğmesine basıyor ve bu öğeler bir modelde saklanıyor. Bunun içinDjango ve xlrd, bellekten okuma
, ben bu görüşü ve formu yazdım:
formu:
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
görünüm:
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})
İhtiyacım # I need to open this input_excel with input_excel.open_workbook()
de görebileceğiniz gibi bellekten okumak için ama open_workbook
bir dosyadan thi kaydetmeden okur bir yere girdi, nasıl okuyabilirim?
harika çalışıyor, teşekkürler! – Hellnar
Unicode dosyaları için 'book = open_workbook'u kullanabilirsiniz (file_contents = input_excel.read(), encoding_override = 'utf8')' –