0

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

4

1 に答える 1