我穿鞋有问题。我基本上是想打开一个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
不仅名字没有出现在列表框中,而且应用程序在加载列表框后很快就会崩溃,没有任何错误。para@excws显示工作表的名称,没有问题。
我做错什么了?
最佳答案
问题出在编码上
这作品
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