Axlsx::Package.new do |p| p.workbook.add_worksheet(:name => "xxx") do |sheet| array = ["a","b","c","d","e"] sheet.add_row array end p.serialize('测试一.xlsx') end
如上在本地生成了测试一.xlsx 文件,怎么将本地生成的这个文件发送到特定邮箱呢? 求思路
Complete List of Action Mailer Methods 里面有 Adding Attachments
Adding Attachments
#1 楼 @w7938940 看不太懂,具体该怎么做?
#2 楼 @xiaobai2 先要配置Action Mailer,这里有中文教程,然后在发送邮件的 action 里面加上你需要的附件
Action Mailer
attachments['测试一.xlsx'] = File.read('/path/to/测试一.xlsx')
#3 楼 @w7938940 如果我不生成附件了,直接把 p 发送给指定邮箱,该怎么做?现在发送邮件这块儿已经走通了,但是怎么把 p 以附件的形式发送给指定用户
#4 楼 @xiaobai2 attachments 支持指定 content,你的 p 也可以用 to_stream 转换成 StringIO,以下代码未经测试
attachments
content
p
to_stream
StringIO
attachments['测试一.xlsx'] = { :mime_type => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', :content => p.to_stream.read }
#5 楼 @w7938940 谢谢,知道了,文档看的太少了