项目中经常会遇到需要导入excel以及csv等文件格式的数据到数据库中。
1.导入xls文件,文档
添加gem
1
| gem 'spreadsheet', '1.0.0'
|
导入的只能是xls格式的,如果为xlsx格式的需要先手动转化为xls格式在进行导入,直接在rails c 中读取文件,然后操作
1 2 3 4 5
| book = Spreadsheet.open('public/a.xls'); sheet = book.worksheet 0 sheet.each_with_index do |row, index| p row[0] end
|
2.导出xls文件
1 2 3 4 5 6 7 8
| xls_report = StringIO.new Spreadsheet.client_encoding = 'UTF-8' book = Spreadsheet::Workbook.new sheet1 = book.create_worksheet name: '测试' sheet1.row(0).concat([第一列,第二列]) sheet1[1,0] = 'china' sheet1.column(0).default_format = Spreadsheet::Format.new align: :right,weight: :bold book.write xls_report
|
3.导入csv文件,文档
1 2 3
| CSV.foreach("path/to/file.csv") do |row| end
|
4.导出csv文件
1 2 3 4 5
| CSV.open("path/to/file.csv", "wb") do |csv| csv << ["row", "of", "CSV", "data"] csv << ["another", "row"] end
|