https://github.com/randym/axlsx 및 https://github.com/straydogstudio/axlsx_rails으로 간단한 Excel 파일 다운로드를 내 Rails 앱에 추가하려고하지만 의존성을 정렬 할 수없는 것으로 보입니다.axlsx/axlsx_rails 의존성/충돌 문제
gem 'zip-zip'
gem 'axlsx'
gem 'axlsx_rails'
gem 'activeadmin-axlsx'
간단한 인덱스 템플릿 :
wb = xlsx_package.workbook
wb.add_worksheet(name: "Areas") do |sheet|
@areas.each do |area|
sheet.add_row [area.name, area.user_id]
end
end
이 예외 :
이NoMethodError - undefined method `reopen' for "streamed":String:
rubyzip (1.2.0) lib/zip/output_stream.rb:32:in `initialize'
axlsx (1.3.6) lib/axlsx/package.rb:113:in `to_stream'
app/views/areas/index.xlsx.axlsx:8:in `_app_views_areas_index_xlsx_axlsx___113759396792702403_70279795626520'
이 문제는 시도 것으로 보인다 내 보석 파일을 시작 곳에있다
입니다 주소 :
https://github.com/straydogstudio/axlsx_rails/issues/18
그리고 내가이 시도로드 할 수없는 것 수 axlsx 보석의 버전 2.x에 초점을 맞추고 :
gem 'zip-zip'
gem 'axlsx', '2.1.0.pre'
gem 'axlsx_rails', '>=0.4'
gem 'activeadmin-axlsx'
을하지만 그 active_admin_import 나누기 :
Bundler could not find compatible versions for gem "rubyzip":
In Gemfile:
active_admin_import (>= 0) ruby depends on
rubyzip (~> 1.2) ruby
axlsx (= 2.1.0.pre) ruby depends on
rubyzip (~> 1.1.7) ruby
나는 이것들을 읽었을 때와 같이 얻을 수 없다. 둘 다 rubyzip의 v1.2에서 괜찮을 것이다.
또한 activeadmin-axlsx
나누기 :
# patching the index method to allow the xlsx format.
def index_with_xlsx(options={}, &block)
index_without_xlsx(options) do |format| ### wrong number of arguments (1 for 0)
format.xlsx do
xlsx = active_admin_config.xlsx_builder.serialize(collection)
send_data xlsx.to_stream.read, :filename => "#{xlsx_filename}", :type => Mime::Type.lookup_by_extension(:xlsx)
end
end
내가 active_admin_import
axlsx
을 사용하지 않도록 설정하면 잘 작동하지만 매끄러운 관리자 가져 오기를 풀어 때문이 안됐다.
다운 그레이드가 작동하는 것 같다하지만 장기적인 해결책은 아닌 것 같아 :
gem 'active_admin_import', '2.1.2'
모든 여기에 아이디어 나 제안? 나는 active_admin_import
종속성이 없지만
axlsx repo를 분기하고 의존성을 변경하고 자신의 github을 가리켜 볼 수도 있습니다. Rubyzip 1.1 대 1.2에 대해서는별로 신경 쓰지 않을 것이라고 확신합니다. 그러나 당신은 알아 내야 할 것입니다. Axlsx_rails는 종속성 문제를 일으킬 수 있지만 그렇지 않을 수 있습니다. 불행히도 axlsx 개발은 지난 1 년 정도 동안 진행되었지만 여전히 유용한 보석입니다. – noel