레일 5를 사용 중입니다. Word 문서 (.doc)에서 텍스트를 가져 오려고합니다. 이 코드를 사용하고 있습니다.Word 문서에서 콘텐츠를 가져 오려고 할 때 "Ole :: Storage :: FormatError : OLE2 서명이 잘못되었습니다."
text = nil
MSWordDoc::Extractor.load(file_location) do |ctl00_MainContent_List1_grdData|
text = contents.whole_contents
end
하지만 아래 오류가 나타납니다. 내 Gemfile이 보석을
gem 'msworddoc-extractor'
다른 내가 워드 문서 밖으로 콘텐츠를하려면 어떻게해야합니까? .docx
파일에 동일한 코드를 적용하여 .doc
개의 파일에 적용 할 수 있다면 좋을 것입니다. 사용중인
/Users/davea/.rvm/gems/ruby-2.4.0/gems/ruby-ole-1.2.12/lib/ole/support.rb:201: warning: constant ::Fixnum is deprecated
Ole::Storage::FormatError: OLE2 signature is invalid
from /Users/davea/.rvm/gems/ruby-2.4.0/gems/ruby-ole-1.2.12/lib/ole/storage/base.rb:378:in `validate!'
from /Users/davea/.rvm/gems/ruby-2.4.0/gems/ruby-ole-1.2.12/lib/ole/storage/base.rb:370:in `initialize'
from /Users/davea/.rvm/gems/ruby-2.4.0/gems/ruby-ole-1.2.12/lib/ole/storage/base.rb:112:in `new'
from /Users/davea/.rvm/gems/ruby-2.4.0/gems/ruby-ole-1.2.12/lib/ole/storage/base.rb:112:in `load'
from /Users/davea/.rvm/gems/ruby-2.4.0/gems/ruby-ole-1.2.12/lib/ole/storage/base.rb:79:in `initialize'
from /Users/davea/.rvm/gems/ruby-2.4.0/gems/ruby-ole-1.2.12/lib/ole/storage/base.rb:85:in `new'
from /Users/davea/.rvm/gems/ruby-2.4.0/gems/ruby-ole-1.2.12/lib/ole/storage/base.rb:85:in `open'
from /Users/davea/.rvm/gems/ruby-2.4.0/gems/msworddoc-extractor-0.2.0/lib/msworddoc/extractor.rb:11:in `load'
from /Users/davea/Documents/workspace/myproject/app/services/msword_processor_service.rb:12:in `pre_process_data'
from /Users/davea/Documents/workspace/myproject/app/services/abstract_import_service.rb:88:in `process_race_data'
from (irb):2
from /Users/davea/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands/console.rb:65:in `start'
from /Users/davea/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands/console_helper.rb:9:in `start'
from /Users/davea/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands/commands_tasks.rb:78:in `console'
from /Users/davea/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands/commands_tasks.rb:49:in `run_command!'
from /Users/davea/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands.rb:18:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
이것은 인터넷에서 다운로드 한 워드 문서입니다. 슬프게도 문서를 다른 형식으로 다시 저장하는 것은 옵션이 아닙니다. ".doc"파일을 열 수있는 Ruby 솔루션을 찾아야합니다. 이 문서를 Word 2010에서 열 수 있습니다. – Dave
UNIX/Linux에서는'file your.doc'와 같은'file' 명령을 사용할 수 있습니다. 그러면 파일 형식이 출력됩니다 :'Microsoft Word 2007 +'또는 'Composite Document File V2 Document, Little Endian, Os : Windows, Version 5.1, Code page : 1252'를 참조하십시오. 어떤 파일인지 판단하는 데 도움이 될 수 있습니다. 이것은 파일 헤더에 대해 같은 종류의 "마법 테스트"를 사용하여 파일 유형을 판별합니다. – anothermh
안녕하세요, 유닉스 명령이 정말로 저를 도와 주셨습니다. 파일을 제대로 다운로드하지 않을 것 같았습니다. 어쨌든 MS 워드 파싱에 대해 꽤 좋은 생각이 든다면, 또 하나의 오픈 타트가 아마 하루 ro의 현상금에 갈 것입니다. - http://stackoverflow.com/questions/43077897/how-do-i- 데이터를 정확히 파싱하는 시각적 효과를 제공하는 파싱 - 액셀 파일 – Dave