我想将 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')
。但这对我没有帮助。