我正在Ruby on Rails中制作一个应用程序,它将询问用户多个选择题。我想从excel文件上传问题到数据库。我该怎么做?将excel导入到rails应用程序中的sqlite中
回答
保存Excel电子表格为CSV文件,然后使用CSV解析器,也许在耙文件:
在LIB/TAKS/import.rake:
require 'fastercsv'
namespace :import => :environment do
task :questions do
FasterCSV.foreach("path/to/file.csv") do |row|
q = Question.create(:question=>row[0], etc...)
PossibleAnswer.create(:question=>q, :answer=>row[1], etc....) #providing PossibleAnswer belongs_to Question
end
end
end
然后运行“耙进口:问题”
您可以使用电子表格宝石从Excel文件中的数据读取: http://rubygems.org/gems/spreadsheet
这是如果你想允许用户上传他们自己的Excel文档,导入一些问题,或者如果你希望用户能够以excel文件格式下载问题,这是最有用的。
如果你只是想做一次性的一些数据导入,我会和尤尔的想法一起去做,而且只是通过csv来完成,这很容易掌握。
我已经安装了这个gem,但不知道如何使用它,我无法找到任何教程。 – user558138 2011-05-25 09:33:24
它实际上很好记录,即有一个很好的rdoc。我发现读这些的最好方法是启动一个gem服务器并在浏览器中查看它。 'gem server',然后在浏览器中转到'localhost:8808',点击'电子表格',然后点'rdoc'。 GUIDE链接有很多有用的例子。 – 2011-05-25 09:43:03
- 1. 将巨大的Excel文件导入到Rails应用程序中
- 2. 将Excel导入Rails应用程序
- 3. 将Excel .csv导入到SQLite
- 4. 在rails应用程序中导入excel文件
- 5. 将rails应用程序中的ruby转换为sqlite到postgresql
- 6. 将CSV文件导入到Android应用程序Sqlite数据库
- 7. 将SQLite数据导入Excel?
- 8. 将数据导出到asp.net应用程序中的excel文件
- 9. 将Excel导入到matlab中
- 10. Rails应用程序:将数据sqlite3数据库导入到sqlite3
- 11. 导入Excel工作表数据到Sqlite表格在Windows商店应用程序
- 12. 将Ruby/Rails应用程序集成到Java应用程序中。
- 13. 在rails应用程序中导入PostgresSQL中的数据库
- 14. 在Windows应用程序的Excel中的导入语句
- 15. 将现有的Web应用程序导入到Eclipse中
- 16. 麻烦与导入sqlite到Android应用程序
- 17. 我可以在Excel中启动Access 2007应用程序并自动将Excel值导入到Access中吗?
- 18. 在我的Rails应用程序中导入salesforce数据库
- 19. 将twitter-bootstrap-rails添加到现有的rails应用程序中
- 20. 将org.apache.commons导入到Android应用程序中
- 21. 将非核心npm库导入到Angular 2应用程序中
- 22. 将pfx文件导入到iOS应用程序中
- 23. 如何将apk文件导入到android应用程序中?
- 24. 从csv文件导入到rails应用程序中的sqlite数据库的最佳方式
- 25. 在Java Swing应用程序中导入Excel(.xls)
- 26. 如何将Excel表导入Windows Phone 7应用程序?
- 27. 使用c#导出到Excel(在web应用程序中)
- 28. 如何在iPhone应用程序中动态导入CSV数据到sqlite
- 29. SQLAlchemy CSV导入(到SQLite中)?
- 30. 将SQLite数据库打包到我的应用程序中
谢谢你的回答......我是RoR的新手。你可以告诉模型应该是什么样的使用这个耙文件... – user558138 2011-05-25 09:31:29
它可以与任何模型一起工作,只需用你的字段名称替换圆括号中的位 – Yule 2011-05-25 09:46:25
我得到未初始化的常量问题在耙子导入:问题 – user558138 2011-05-25 10:18:47