我需要Django Admin界面來接受管理員上傳的Excel文件,其中每個Excel文件中的數據都插入到我的數據庫模型中。我怎樣才能讓這樣一個「上傳」按鈕出現在Django模型管理頁面上,點擊該按鈕要求管理員選擇一個.xls
文件,其數據一旦上傳完成就被添加到數據庫中?通過django將excel數據導入模型admin
8
A
回答
4
我不確定事情的Django方面,但您可以使用xlrd來讀取和操作Excel文件。有一個免費的PDF解釋了這個叫做Working with Excel files in Python
7
我已經完成了這個,但我只是設置了一個帶有文件上傳的簡單視圖(實際上這比直接添加到Django管理頁面更有意義, page =一個模型實例,我假設你的excel包含多個模型)。
在forms.py,一個簡單的形式與文件上載字段
class ImportExcelForm(forms.Form):
file = forms.FileField(label= "Choose excel to upload")
在views.py
,一個視圖來處理上載
def test_flowcell(request):
c = RequestContext(request, {'other_context':'details here'})
if request.method == 'POST': # If the form has been submitted...
form = ImportExcelForm(request.POST, request.FILES) # A form bound to the POST data
if form.is_valid(): # All validation rules pass
excel_parser= ExcelParser()
success, log = excel_parser.read_excel(request.FILES['file'])
if success:
return redirect(reverse('admin:index') + "pages/flowcell_good/") ## redirects to aliquot page ordered by the most recent
else:
errors = '* Problem with flowcell * <br><br>log details below:<br>' + "<br>".join(log)
c['errors'] = mark_safe(errors)
else:
c['errors'] = form.errors
else:
form = ImportExcelForm() # An unbound form
c['form'] = form
return render_to_response('sequencing/file_upload.html')
和所建議的其他後使用xlrd從Excel文件中讀取數據。我對這個
import xlrd
class ExcelParser(object, excel_name):
@transaction.commit_on_success
def read_excel(self):
wb = xlrd.open_workbook(excel_name)
...
do your parsing in here.....
...
一個單獨的文件ExcelParser.py(我可以補充一點,Excel是導入數據的可怕,而且容易出錯的方式,我在我的工作做了很多的它,我試圖說服管理層有更好的解決方案。)
2
django-import-export可能會有所幫助。
它爲admin對象創建兩個「導入」和「導出」按鈕,並允許選擇多種類型的擴展,包括xls。它還顯示數據將被導入並要求在執行執行前進行確認。
您只需將其包含在INSTALLED_APPS中,並創建要上載的類的導入導出資源和與之前創建的資源類相關的ImportExportModelAdmin的子類,以在admin中顯示按鈕。
http://django-import-export.readthedocs.org/en/latest/getting_started.html https://github.com/bmihelac/django-import-export:在
更多信息。
相關問題
- 1. Admin將模型數據導出到csv/excel文件
- 2. 將數據導入帶有現有數據的Django模型?
- 3. 通過存儲過程將數據從Excel導入到SQL Server
- 4. PHP - 將數據導入excel模板
- 5. Django Excel數據導入導出
- 6. django admin分層嵌入模型編輯
- 7. 如何將數據從SSAS導入Excel表格表格模型?
- 8. 將大數據集導入Excel中通過VBA訪問
- 9. 通過SSIS包將excel中的數據導入到SSMS 2016
- 10. 將Excel數據導入Access
- 11. 將Excel數據導入F#
- 12. 將SQLite數據導入Excel?
- 13. 導出大型數據表excel 2003通過c#沒有excel COM
- 14. 通過HTTP將XML導入到Excel中
- 15. 將CSV導入到我的Django模型
- 16. 將Django模型導入python cli腳本
- 17. Django admin更改複數模型名稱
- 18. 從Excel導入數據通過c#.net訪問數據庫
- 19. Django導入模型問題
- 20. 使用XML和Excel模板將數據導入到Excel
- 21. 導入SharePoint數據通過通過VBA
- 22. Django的:模型通過RelatedManager
- 23. Django模型組通過
- 24. Django「通過」模型迭代
- 25. 通過在Django模型
- 26. 從Excel導入Excel數據
- 27. 通過Ajax發佈表單數據導致空模型數據
- 28. 通過Excel宏將Excel單元格數據導出到數據庫?
- 29. Django Admin過濾列表通過TextField
- 30. 如何根據django中的模型顯示總記錄數admin
這是一個很好的問題 - 我認識的另一位開發人員以前需要在Django之下工作,而且我自己現在需要在我自己的項目之一中。應該重新打開該問題,以便我們可以分享如何將Excel上載工作到Django Admin Interface。 – 2013-02-22 13:59:00
哦 - 同時,還有一個類似的問題,人們可以參考,但涉及'.csv'文件格式,而不是Excel文件格式:http://stackoverflow.com/questions/3974620/ – 2013-02-22 14:00:50