rubyXL gemで作成したxlsxファイルをAngularJSであるフロントエンドに送りたい。ワークシートをストリーム保存してsend_dataメソッドで送信するとデータは取得できるのですが、作成した文書が壊れて開けません。
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')
。しかし、それは私を助けませんでした。