如何將數據從Excel工作表加載到我的Django應用程序中?我使用數據庫PosgreSQL作爲數據庫。從Excel工作表獲取數據
我想以編程方式做到這一點。客戶希望每週在網站上加載兩個不同的列表,並且他們不想在管理部分執行此操作,他們只需要從Excel工作表加載列表。請幫忙,因爲我在這兒有點新鮮。
如何將數據從Excel工作表加載到我的Django應用程序中?我使用數據庫PosgreSQL作爲數據庫。從Excel工作表獲取數據
我想以編程方式做到這一點。客戶希望每週在網站上加載兩個不同的列表,並且他們不想在管理部分執行此操作,他們只需要從Excel工作表加載列表。請幫忙,因爲我在這兒有點新鮮。
以編程方式或手動方式?如果manualy然後只用
copy the_data from '/path/to/csv/MYFILE.txt' DELIMITERS ',' CSV;
我記得這個保存Excel爲CSV(以CSV或TXT擴展名),並導入到PostgreSQL的。 最好的方法是將此工作表保存爲純文本(CSV或其他) 然後加載一些自定義SQL腳本。 http://www.postgresql.org/docs/8.3/static/populate.html
看看xlrd包,它允許你用Python讀取Excel文件。讀完數據後,您可以隨心所欲地執行任何操作,包括將其保存到數據庫中。
對於基本的使用例子,看看http://scienceoss.com/read-excel-files-from-python/
可以'xlrd'讀取公式嗎? http://www.lexicon.net/sjmachin/xlrd.htm表明它不能。 https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html表明它可以。 – 2010-02-15 01:01:26
我從來沒有試過,所以我不知道。但是,如果你嘗試一下,請發佈你的發現:-) – 2010-02-15 07:22:59
通過閱讀xlrd 0.7.1的源代碼,有一些代碼來解析公式。但它默認是禁用的。它是實驗/不完整的 - 例如。它無法處理我在Excel文件中的數組公式。 – 2010-02-17 00:08:48
或者看看SQLAlchemy的,如果你要編寫某種腳本來幫你。(http://www.sqlalchemy.org/)
如果你想使用COM來連接excel(即您正在Windows機器上運行),請參閱「將Excel數據遷移到SQLite」 - http://www.saltycrane.com/blog/2007/11/migrating-excel-to-sqlite-using-python/
查看Chris Withers在PyCon US上給出的演示文稿「Excel & Python」:
「這個閃電講話解釋說,你不需要使用COM或在Windows上讀取和寫入本機Excel文件。」
http://www.simplistix.co.uk/presentations/python_excel_09/excel-lightning.pdf
使用Django,batchimport http://code.google.com/p/django-batchimport/它提供了一個非常簡單的方式在Excel工作表數據上傳到您的Django模型。我在一些項目中使用過它。它可以很容易地集成到您現有的Django項目中。
閱讀項目頁面上的文檔以瞭解如何使用它。
它建立在XLRD上。
+1這是一個很好的使用,因爲他們已經編碼到XLRD的一些怪癖(這是一個很好的包)。 – 2009-11-17 15:32:24
xlrd中需要「編碼」的怪癖是什麼? – 2009-11-29 07:51:58
'django-batchimport'不幸被遺棄;該代碼看到了一個重大更新,但文檔從未被重寫(除了在頂部添加註釋說文檔不再相關),並且該項目的最後一次提交是在2009年。 – 2013-02-22 14:37:24
我在xlrd之上建立了django-batchimport,這是令人驚歎的。我遇到的唯一問題是將數據導入Django。與xlrd的任何限制無關。它岩石。約翰的工作令人難以置信。
請注意,我實際上已經做了一些更新工作,以django-batchimport和剛剛發佈。看看:http://code.google.com/p/django-batchimport/
剛剛開始使用XLRD,它看起來非常簡單易用。
請注意,它還不支持Excel 2007,因此請記住將您的excel保存爲2003格式。
我不知道是誰降級了它,爲什麼。我認爲它(假設情況仍然如此),重要的是要提到excel版本的限制,並且讓其他人不必自行找到它。 – OritK 2014-06-25 03:11:27
以編程方式,客戶希望每週將兩個不同的列表加載到網站上,並且不想在管理部分執行此操作,他們只想從exel工作表加載列表。請幫忙,因爲我在這裏有點新東西 – user167139 2009-11-17 09:25:57
Python/DB/Excel或SO的新手。請使用上面評論中的詳細信息重新格式化您的問題。 – whatnick 2009-11-17 09:36:39