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')
を使ってみました。しかしそれは私を助けませんでした。