为啥 response.body 不能用 xlsx 格式读取
Posted
技术标签:
【中文标题】为啥 response.body 不能用 xlsx 格式读取【英文标题】:Why response.body not readable with xlsx format为什么 response.body 不能用 xlsx 格式读取 【发布时间】:2022-01-17 13:48:55 【问题描述】:我想用 xlsx 文件为我们的导出文件添加 RSpec 测试,但是在获得 xlsx 格式的端点索引后,我的 response.body 不可读,我无法检查文件内容
rspec:
it 'returns a successful 200 response for xlsx format' do
get :index, format: :json
expect(response).to be_successful
expect(response.headers['Content-Type']).to eq('my_value'; charset=utf-8')
expect(response.request.fullpath).to eq('end_poing_path.xlsx')
end
但是当我想检查response.body
时,我得到了下面的图片
【问题讨论】:
另外,我在父上下文中添加了render_views
那么你的问题是如何写一个expect语句来验证响应?
不,我想做一个可读的response.body
定义可读。 Response 的数据类型是String。如果你知道这个 String 的内容是什么,你可以写一个 expect
来看看这是一个 可读 内容,不管你的意思是什么。
xlsx 是一个压缩目录结构,如果你真的想读取文件内容,你首先必须解压缩它,它会产生几个目录,其中大部分是 xml 文件内容。然后你必须读取实际包含内容的 xml 文件(相对于所有其他 xlsx '开销'),然后从 xml 中提取预期的内容。如果你有决心,这是可行的,但不是微不足道的。
【参考方案1】:
我使用了caxlsx
gem,它无法读取 Excel 文件,所以我必须安装另一个 gem(Roo 或 simple_xlsx_reader)来读取 excel 文件,然后我打开 response.body
或带有 @987654327 的文件@宝石
【讨论】:
以上是关于为啥 response.body 不能用 xlsx 格式读取的主要内容,如果未能解决你的问题,请参考以下文章
为啥会出现“svn: E120106: ra_serf: The server sent a truncated HTTP response body”错误? [复制]
wps两个表格使用vlookup匹配为啥出现所引用的单元格不能位于256列
本地docker不能登录远程harbor服务器,error response from daemon,error parsing http 403 response body
本地docker不能登录远程harbor服务器,error response from daemon,error parsing http 403 response body