0
我想發送由rubyXL gem創建的xlsx文件到前端,即AngularJS。當我將工作表保存在一個流中並通過send_data方法發送它時,我得到了這些數據,但我無法打開創建的文檔,因爲它已損壞。發送xlsx文件到前端 - AngularJS
workbook = RubyXL::Workbook.new
worksheet = workbook[0]
worksheet.sheet_name = 'Average of Team'
worksheet.add_cell(0, 0, 'A1')
buffer = workbook.sream
send_data buffer
我可以將數據保存到磁盤。但我無法將它發送給客戶端。所以,我可以從angularjs訪問數據。
workbook = RubyXL::Workbook.new
worksheet = workbook[0]
worksheet.sheet_name = 'Average of Team'
worksheet.add_cell(0, 0, 'A1')
path = "#{Rails.root}/tmp/#{Time.now.strftime('%Y%m%d%H%M%S%L')}.xlsx"
workbook.write(path)
send_file path
我不想將工作簿保存在雲上併發送鏈接到客戶端。我的問題的最佳解決方案是什麼?我在哪裏犯錯?
UPD: 看來,當我試圖發送保存的文件,我發送完成前刪除文件。
UPD: 當我發送數據時,我遇到了編碼數據的問題。我試圖用string.bytes.to_a.pack("C*")
,string.force_encoding('binary')
。但它沒有幫助我。