rails_import_xls_and_csv

项目中经常会遇到需要导入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'); #如果是在rails c中直接读取的时候,最后记得加上分号,如果不加分号会全部读取,要等很长时间
sheet = book.worksheet 0 #后面的数字是代表读取那个工作区间的
sheet.each_with_index do |row, index|
p row[0] #index为行数 row为具体行里的内容,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 #保存