我有一个用rails构建的json api。 这是网址:https://kazatomprom-backend.herokuapp.com/organizations/suzak/blocks/1/notes
我想将数据导出到xls。但是这些数据必须根据模型属性进行定制。
id| volume_value|user
1| 887 |zhanabek@gmail.com
2| 897 |john@gmail.com
我找到了一些解决方案,但它需要视图,但我不需要视图,因为这是api。那么,如何仅使用api?
导出数据答案 0 :(得分:0)
这样的东西会起作用(它使用csv数据写入xls文件):
CSV.open('foo.xls', "wb") do |csv|
csv << ['id','volume_value','user']
JSON.parse(json).each do |hash|
csv << [hash['id'],hash['volume_value'],hash['user']['email']]
end
end
答案 1 :(得分:0)
您可能希望看到
的宝石acts_as_xlsx
https://github.com/randym/acts_as_xlsx
它允许您在.to_xlsx
结果上调用ActiveRecord
方法
Posts.where(created_at > Time.now-30.days).to_xlsx
如何使用
将gem添加到Gemfile并捆绑安装 gem&#39; acts_as_xlsx&#39;
# app/models/post.rb
class Post < ActiveRecord::Base
acts_as_xlsx
end
# app/controllers/posts_controller.rb
class PostsController < ApplicationController
# GET posts/xlsx
def xlsx
p = Post.to_xlsx
p.serialize('public/downloads/posts.xlsx')
send_file 'public/downloads/posts.xlsx', :type=>"application/xlsx"
end
end
# dont forget to add posts/xslx to your routes!