2011-09-20 4 views
3

신발을 사용할 때 문제가 있습니다. 기본적으로 Excel 문서를 열어 워크 시트의 이름을 list_box에 전달하려고합니다. 파일을 선택하면 버튼 누르기에서 다음 메서드가 호출됩니다. (모든 작품과 파일이 열립니다이)루비 (신발) Excel에서 채울 때 목록 상자가 손상 될 수 있습니다.

exc = WIN32OLE::new('excel.Application') 
excWB = exc.Workbooks.Open(xlsFile) 
@excWS = Array::new 
exc.visible = true 
excWB.Worksheets.each { |ws| @excWS.push(ws.name) } 
para @excWS 
list_box :items=> @excWS 

뿐만 아니라 이름이 list_box에 표시되지 않는 응용 프로그램이 충돌 곧 오류없이 상자를로드 한 후. para @excWS는 아무 문제없이 워크 시트의 이름을 보여줍니다.

내가 뭘 잘못하고 있니?

답변

0

는 문제 이

Shoes.app :width => 400, :height => 340, :size => 8 do 
    require 'win32ole' 
    exc = WIN32OLE::new('excel.Application') 
    excWB = exc.Workbooks.Open('C:/Shoes/0.r1514/test/book1.xls') 
    @excWS = Array::new 
    exc.visible = false 
    excWB.Worksheets.each { |ws| @excWS.push(ws.name.force_encoding("UTF-8")) } 
    list_box :items=> @excWS 
    exc.ActiveWorkbook.Close(0); 
    exc.Quit(); 
end 
작동했다 인코딩입니다