【发布时间】:2018-07-23 03:37:03
【问题描述】:
我正在尝试将 xlsx 文件保存到浏览器下载中,单击浏览器按钮时会激活以下功能
def trip_bit
@car = Car.find(params[:id])
@t = @car.trips.all
@trips = @t.order(:started_at)
if @trips then
doc = XlsxWriter.new
doc.quiet_booleans!
sheet = doc.add_sheet("Vitácora de Viajes "+@car.model+' '+@car.year.to_s)
sheet.freeze_top_left = 'A2'
sheet.add_row(['Salida', 'Llegada', 'Origen', 'Destino', 'Distancia', 'Duración', 'Score'])
@trips.each do |trip|
sheet.add_row([trip.started_at.to_s, trip.finished_at.to_s, if trip.origin then trip.origin.address end, if trip.destination then trip.destination.address end, trip.distance.to_s+'km', trip.duration.to_s+'min', trip.grade])
end
sheet.add_row(["","","","Total", @trips.map { |trip| trip.distance }.sum.to_s+"km", @trips.map { |trip| trip.duration}.sum.to_s+"min", ""])
else
redirect_to my_car_details_path
flash.now[:alert] = 'Este coche no tiene viajes registrados'
end
send_file doc, :filename => "bitacora.xlsx"
end
xlsx 文件doc 被创建并保存到本地文件系统,但我找不到将其发送到浏览器下载的方法。
【问题讨论】:
-
你的意思是如果有人点击文件就会被保存,而不是在计算机的“下载”文件夹中?或者它没有显示在浏览器菜单下拉列表中的下载列表中?你用什么浏览器测试过?
-
我尝过Chrome和Safari,我想说的是xlsx文件退出了,但我不知道如何将它发送到浏览器下载。使用 send_file 我得到一个红色屏幕,上面写着 没有将 XlsxWriter 隐式转换为字符串
-
@Beartech 我相信 send_file 不适用于 XlsxWriter
-
仍然不清楚你的意思:“我想说的是xlsx文件退出了,但我不知道如何将它发送到浏览器下载”。
标签: ruby-on-rails ruby