Hi,

2008/9/16 Wu Nan <i.wunan+rubymail / gmail.com>:
> Hi All,
>
> I think I just found a bug in Win32OLE,
>
> When I read a cell which has Korean or Chinese Character Text from Excel2003
> with Win32Ole, whatever the text is, the value of the cell is always '????'
>
> My environment is WinXP Sp3, Office2003, Ruby is 1.8.6 (I also test the
> 1.9.0, it still returns ??????)
>
> I use the parseexcel, and it can read the cell content correctly.
>
> I attched the test codes and test file.
> In the excel file, there are 2 cells, first cell is Koean Text, 2nd cell is
> Chinese Text.
>
> test.rb is used Win32Ole.
> test2.rb is used parseexcel, if you want use this, please:Gem Install
> parseexcel
> test.xls is the excel file
>
> Thanks for alex's help.
>
> BR
> Nan
>
That is not a bug.

You must use WIN32OLE.codepage in case of the mixed character set handling:
Here is a working code for my Korean WinXP SP3 based on your test.rb:

require 'win32ole'
require 'iconv'

def read_excel(e_name, s_name)
    $excel.WorkBooks.Open("#{$MY_LOCATION}/" + e_name,TRUE)

    $excel.WorkSheets(s_name).Activate
    begin
    puts $excel.Cells(1,1).value
    puts $excel.Cells(1,2).value

    $excel.Cells(1,1).text.to_s.each_byte{|c| print c, ' '}
    puts Iconv.conv("EUC-KR//IGNORE","UTF-8//IGNORE",$excel.Cells(1,1).value)

    ensure
        $excel.WorkBooks.Close()
    end
end

$MY_LOCATION = Dir.getwd
WIN32OLE.codepage = WIN32OLE::CP_UTF8
$excel = WIN32OLE.new("excel.application")
$excel.Visible = false
begin
read_excel('test.xls',"Sheet1")
ensure
$excel.Quit()
end


Regards,

Park Heesob