From: xuhaimin Date: 2008-09-16T18:57:35+09:00 Subject: Re: [BUG REPORT] for WIN32OLE: The returning of Reading the Asian Langugae Text in Excel is always '?????? ' --_ed1fa0ad-ead9-4f79-89f8-fa31820665fa_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: 8bit i want to know how to exit this maillist> Date: Tue, 16 Sep 2008 18:30:56 +0900> From: i.wunan+rubymail@gmail.com> Subject: Re: [BUG REPORT] for WIN32OLE: The returning of Reading the Asian Langugae Text in Excel is always '?????? '> To: ruby-talk@ruby-lang.org> > Hello Heesob,> > Thank you very much! You are right, I have just test it.> > Sorry for my mistake.> > BR> Nan> > 2008/9/16 Heesob Park > > > Hi,> >> > 2008/9/16 Wu Nan > > >:> > > 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> >> > _________________________________________________________________ ����������������MSN����������������MSN�� http://im.live.cn/emoticons/?ID=6 --_ed1fa0ad-ead9-4f79-89f8-fa31820665fa_--