The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<html>

<head>
<meta http-equiv="Content-Type"
content="text/html; charset=x-euc-jp">
<title></title>
</head>

<body bgcolor="#00FFFF">

<pre>Speadsheet::ParseExcel.pm - 0.2405

                                                by Àî¹ç¹§Åµ (Hippo2000)

¹¹¿·ÍúÎò¤ÏChanges¤ò¤´Í÷¤¯¤À¤µ¤¤

³µÍ×
  ¤³¤Î¥â¥¸¥å¡¼¥ë¤Ï¡¢¤Þ¤À¦Á¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹¡£

  Microsoft¼Ò¤ÎExcel¥Õ¥¡¥¤¥ë¤òWindows°Ê³°¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤â¾ðÊó¤ò¼è¤ê
  ½Ð¤¹¤è¤¦¤Ë¤¹¤ë¥â¥¸¥å¡¼¥ë¤Ç¤¹¡£

Æ°ºî³Îǧ
  DOS/V     WindowsNT ver.4.0    Perl5.005
  DOS/V     TurboLinux ver.6.0   Perl5.005
  Sun Sparc Solaris 2.6          Perl5.005
  DOS/V     Vine Linux 2.0       Perl5.005
  Macintosh JPerl¡¢FreeBSD¤Ç¤âÆ°¤¤¤Æ¤¤¤ë¤È¤¤¤¦¥ì¥Ý¡¼¥È¤ò¤¤¤¿¤À¤¤¤Æ¤¤¤Þ¤¹

  ¤½¤Î¾¤Î´Ä¶­¤Ç¼Â¹Ô¤µ¤ì¤¿Êý¤Ï¡¢¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡£
  Æ°¤¤¤Æ¤âÆ°¤«¤Ê¤¯¤Æ¤â¡¢¤´¶¨ÎϤè¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ &lt;(__)&gt;

´Êñ¤Ê³Îǧ(test¥Ç¥£¥ì¥¯¥È¥ê¡Ë
  sample¥Ç¥£¥ì¥¯¥È¥ê¤Ë°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬Æþ¤Ã¤Æ¤¤¤Þ¤¹¡§

  sample.pl   ¡§´Êñ¤Ê¥Æ¥¹¥È¥¹¥¯¥ê¥×¥È¡ÊSpreadsheet::ParseExcel::FmtDefault¤ò»ÈÍÑ¡Ë
  sample_j.pl ¡§´Êñ¤Ê¥Æ¥¹¥È¥¹¥¯¥ê¥×¥È¡ÊSpreadsheet::ParseExcel::FmtJapan¤ò»ÈÍÑ¡¢¥³¡¼¥É¤ò»ØÄꤷ¤Æ½ÐÎÏ¡Ë
  res_sample  ¡§sample.pl¤Î¼Â¹Ô·ë²Ì
  res_sample_j¡§sample_j.pl¤Î¼Â¹Ô·ë²Ì(euc)

  dmpEx.pl  : Excel¥Õ¥¡¥¤¥ë¤ÎÆâÍƤòɽ¼¨¤¹¤ë¡ÊSpreadsheet::ParseExcel::FmtDefault¤ò»ÈÍÑ¡Ë
  dmpExj.pl : Excel¥Õ¥¡¥¤¥ë¤ÎÆâÍƤòɽ¼¨¤¹¤ë¡ÊSpreadsheet::ParseExcel::FmtJapan¤ò»ÈÍÑ¡Ë

  ´Êñ¤Ë¤³¤Î¥â¥¸¥å¡¼¥ë¤ÎÆ°¤­¤ò³Îǧ¤·¤¿¤¤¤À¤±¤Ç¤¢¤ì¤Ð¡¢dmpExj.pl¤Ë¤è¤Ã¤Æ
  »ØÄꤷ¤¿Excel¥Õ¥¡¥¤¥ë¤ÎÆâÍƤòɽ¼¨¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

  ex.
    # perl -I.. dmpExj.pl Excel/Test97.xls euc 

    ¡Ö-I..¡×¤Ï¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ëSpreadsheet::ParseExcel.pm¤òÍøÍѤ¹¤ë¤¿¤á¤Ë»ØÄꤷ¤Þ¤¹¡£
    ¡ÖExcel/Test97.xls¡×¤ÏÂоݤȤʤë¥Õ¥¡¥¤¥ë̾¡£
    ¡Öeuc¡×¤Ï´Á»ú¤ò½ÐÎϤ¹¤ë¤È¤­¤Îʸ»ú¥³¡¼¥É¤Ç¤¹¡£euc¡¢sjis¡¢jis¤Ê¤É
    Jcode.pm¤ÈƱ¤¸¤Ç¤¹¡£

¥¤¥ó¥¹¥È¡¼¥ë
  OLE::Storage_Lite¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¡¡Spreadsheet::ParseExcel::FmtJapan¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¢Jcode.pm¤òɬÍפȤ·¤Þ¤¹¡£¡Ê¾¤Î¥â¥¸¥å¡¼¥ë¤òɬÍפȤ·¤Þ¤»¤ó¡£¡Ë
¡¡Spreadsheet::ParseExcel::FmtJapan2¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¢Jcode.pm¡¢Unicode::Map¤òɬÍפȤ·¤Þ¤¹¡£
¡¡Perl¤Îɸ½àŪ¤Ê¥¤¥ó¥¹¥È¡¼¥ë¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¤³¤Î¥â¥¸¥å¡¼¥ë¼«ÂΤÏPerl¤Î¤ß¤ÇºîÀ®¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¥³¥Ô¡¼¤¹¤ë¤À¤±¤Ç¤âÆ°¤­¤Þ¤¹¡£</pre>

<pre>  perl Makefile.PL
  make
  make test
  make install (root¤Ë¤Ê¤Ã¤Æ¡Ë
</pre>

<pre>FmtJapan2¤Î¤¿¤á¤Ë</pre>

<pre> µ¡¼ï°Í¸ʸ»ú¤ËÂбþ¤¹¤ë¤¿¤á¤ÎFmtJapan2¤ò0.09¤«¤éƱº­¤·¤Þ¤¹¡£
 ÍøÍѤ¹¤ë¤¿¤á¤Ë¤ÏUnicode::Map¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤Û¤«¡¢°Ê²¼¤Î¼ê½ç¤¬É¬Íפˤʤê¤Þ¤¹¡§</pre>

<pre>  (1) Ʊº­¤µ¤ì¤ë&quot;CP932Excel.map&quot;¤òŬÀڤʥǥ£¥ì¥¯¥È¥ê¤Ë¥³¥Ô¡¼¤·¤Þ¤¹¡£</pre>

<pre>  (2) &quot;CP932Excel&quot;¤ò¥Þ¥Ã¥×̾¤È¤·¤ÆÄɲ乤뤿¤á¤Ë¡¢Unicode::Map³¬Áؤˤ¢¤ëREGISTRY¤Ë°Ê²¼¤Î¹Ô¤òÄɲä·¤Þ¤¹¡£
      ¡Êmap¤Î¥Ç¥£¥ì¥¯¥È¥ê̾¤ÏŬÀڤʥǥ£¥ì¥¯¥È¥ê̾¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡Ë</pre>

<pre>name:    CP932Excel
srcURL:  $SrcUnicode/VENDORS/MICSFT/WINDOWS/CP932.TXT
src:     $DestUnicode/VENDORS/MICSFT/WINDOWS/CP932.TXT
map:     (¥³¥Ô¡¼Àè¤Î¥Ç¥£¥ì¥¯¥È¥ê)/CP932Excel.map
# Don't remove this line</pre>

<pre>»È¤¤Êý
  use strict;
  use Spreadsheet::ParseExcel;
  my $oExcel = new Spreadsheet::ParseExcel;
  my $oBook = $oExcel-&gt;Parse('Excel/Test97.xls');
  
  #¤Þ¤¿¤ÏÆüËܸìÂбþ¤Ç¤Ï
  use strict;
  use Spreadsheet::ParseExcel;
  use Spreadsheet::ParseExcel::FmtJapan;
  my $oExcel = new Spreadsheet::ParseExcel;
  my $oFmtJ = Spreadsheet::ParseExcel::FmtJapan-&gt;new(Code =&gt; 'euc'); #sjis¡¢jis¤Ê¤É¤Î¥³¡¼¥É
  my $oBook = $oExcel-&gt;Parse('Excel/Test97.xls', $oFmtJ);
</pre>

<pre>  #¾ðÊó¤Î¼è¤ê½Ð¤·Îã
  my($iR, $iC, $oWkS, $oWkC);
  
  print &quot;FILE  :&quot;, $oBook-&gt;{File} , &quot;\n&quot;;
  print &quot;COUNT :&quot;, $oBook-&gt;{SheetCount} , &quot;\n&quot;;
  print &quot;AUTHOR:&quot;, $oBook-&gt;{Author} , &quot;\n&quot;;
  for(my $iSheet=0; $iSheet &lt; $oBook-&gt;{SheetCount} ; $iSheet++) {
    $oWkS = $oBook-&gt;{Worksheet}[$iSheet];
    print &quot;--------- SHEET:&quot;, $oWkS-&gt;{Name}, &quot;\n&quot;;
    for(my $iR = $oWkS-&gt;{MinRow} ; 
            defined $oWkS-&gt;{MaxRow} &amp;&amp; $iR &lt;= $oWkS-&gt;{MaxRow} ; $iR++) {
        for(my $iC = $oWkS-&gt;{MinCol} ;
               defined $oWkS-&gt;{MaxCol} &amp;&amp; $iC &lt;= $oWkS-&gt;{MaxCol} ; $iC++) {
            $oWkC = $oWkS-&gt;{Cells}[$iR][$iC];
            print &quot;( $iR , $iC ) =&gt;&quot;, $oWkC-&gt;Value, &quot;\n&quot; if($oWkC);
        }
    }
  }

ÌäÂêÅÀ¡¦¥Ð¥°</pre>

<pre>ºÇÂç¤ÎÌäÂêÅÀ¤Ç¤¢¤Ã¤¿¡ÖExce97 ¥Ç¥Ù¥í¥Ã¥Ñ¡¼¥º ¥­¥Ã¥È¡×¤¬¼ê¤ËÆþ¤ê¤Þ¤·¤¿¡£
  ¤¿¤À¤¿¤ÀHirofumi Morisada¤µ¤ó¤Ë´¶¼Õ¡¢´¶¼Õ¤Ç¤¹¡£
</pre>

<pre>  Excel97/2000¤ÇÊݸ¤·¤¿¾ì¹ç¡¢FmtJapan¤Ç¤Ïµ¡¼ï°Í¸ʸ»ú¡Ê(³ô)¤ä¥í¡¼¥Þ¿ô»ú¤ÎI¤Ê¤É¡Ë¤¬¢®¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
  FmtJapan2¤Ç¤Ï°ì±þÂбþ¤·¤Æ¤¤¤ë¤Ä¤â¤ê¤Ç¤¹¡£</pre>

<pre>  ¤Þ¤À¥Æ¥¹¥È¤â¤Á¤ã¤ó¤È¤Ç¤­¤Æ¤¤¤Þ¤»¤ó¡£¤È¤ê¤¢¤¨¤º¤ÏÆ°¤¯¤Ç¤·¤ç¤¦¡£ &lt;(__)&gt;
  TurboLinux Version 6¤ÇºîÀ®¤·¤Æ¤¤¤ë¤Î¤Ç¡¢Â¾¤Î´Ä¶­¤Ç¤É¤¦¤Ê¤ë¤Î¤«¤È¤Æ¤âµ¤¤Ë
  ¤Ê¤ê¤Þ¤¹¡£
  Solaris¤Ç¤ÏÆ°ºî³Îǧ¤ò¤·¤Æ¤â¤é¤¤¤Þ¤·¤¿¡£¡Ê¤Þ¤ÀÉÔ¶ñ¹ç¤¬¤¢¤ê¤½¤¦¤Ç¤¹¤¬¡Ë

  ¥³¥á¥ó¥È¡¢¥Ð¥°¥ì¥Ý¡¼¥È¤ò¤ªÂÔ¤Á¤·¤Æ¤¤¤Þ¤¹ Àî¹ç¹§Åµ¡§kwitknr@cpn.org

¤ä¤é¤Ê¤­¤ã¤¤¤±¤Ê¤¤¤³¤È¡§
  ¥Æ¥¹¥È¡ª
  ¥É¥­¥å¥á¥ó¥È¤ÎÀ°È÷
  ½ÐÎϤؤÎÂбþ (^_^) Spreadsheet::WriteExcel¤ò»È¤Ã¤Æ¤¤¤¿¤À¤¯¤Î¤¬°ìÈÖ

  ¤À¤ì¤«¤Þ¤ë¤´¤È°ú¤­¤Ä¤¤¤Æ¤¯¤ì¤ë¿Í¤Ï¤¤¤Þ¤»¤ó¤«¡©(^^)

¼Õ¼­¡§
  ¤³¤ó¤ÊȾü¤Ê¾õÂ֤Ǽռ­¤â¤¢¤Ã¤¿¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢°Ê²¼¤Î¥×¥í¥°¥é¥à¡¢
  ¥â¥¸¥å¡¼¥ë¤ò»²¹Í¤Ë¤µ¤»¤Æ¤¤¤¿¤À¤­¤Þ¤·¤¿¡£

    xlHtml
    OLE::Storage
        herbert (OLE::Storage¤ËƱº­¤µ¤ì¤ë¥Ä¡¼¥ë¡Ë
    Spreadsheet::WriteExcel

   Solaris¤Î¥Ç¥Ð¥Ã¥°¤ÏÅçËÜÉð»á¤È»³Ï©½ÕÆव¤ó¤¬¤¤¤Ê¤±¤ì¤Ð¡¢À®Î©¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£(cloudy¤Ë´¶¼Õ¡Ë
¡¡ Ǹ¸ýÀ²Èþ¤µ¤ó¤Ë¤ÏExcel2000¤Î¥Õ¥¡¥¤¥ë¤ò¤¤¤¿¤À¤­¤Þ¤·¤¿¡£
   Hirofumi Morisada¤µ¤ó¤«¤é¤Î¾ðÊó¤Çʸ»úÎó¤Î¥Ð¥°¤òȯ¸«¡¢½¤Àµ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤·¤¿¡£
   ¤½¤·¤Æ¡ÖExcel97¥Ç¥Ù¥í¥Ã¥Ñ¡¼¥º¥­¥Ã¥È¡×¤ò¤É¤¦¤â¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£

  ¤½¤Î¾¡¢¤¿¤¯¤µ¤ó¤ÎÊý¤«¤é¤ÎÆ°ºîÊó¹ð¤ä¥Ð¥°¥ì¥Ý¡¼¥È¤ò¤¤¤¿¤À¤­´¶¼Õ¡¢´¶¼Õ¤Ç¤¹¡£</pre>
</body>
</html>