ひまつぶし雑記帖

doncha.net制作・発行:KindleやiBooks、楽天kobo、BOOK☆WALKERで読む電子書籍

DBD::Excelとか麻布十番納涼祭りとか

2009/8/22 [18:40:42] (土) 天気

朝から毎月定例の内科。今日は採血されて結果は来月。

帰ってから、ちょっとperl。
毎週ルーチンで、60個前後のエクセルファイルを開いてcsvに保存する、という実に馬鹿馬鹿しい低脳作業がある。こんなもの人間のやる仕事じゃない。腐れエクセルには1mmも触りたくない。
複数人が並行で入力しているんだけど、さいわい、シートの名前に規則性があるんで、以前ちらっとここで触れたDBD::Excelを、本稼動させてみた。

ディレクトリにあるxlsファイルを開いて、特定のシートをcsvに吐き出す

#!/usr/local/bin/perl
use strict;
use Encode;
use utf8;
binmode OUT=>':cp932';
use Spreadsheet::ParseExcel;
use Spreadsheet::ParseExcel::FmtJapan;
my $oFmtJ = Spreadsheet::ParseExcel::FmtJapan->new(Code =>'cp932');

my $sheet = shift(@ARGV);
my $orig_dir = 'xls/';
foreach my $d ( @{ $section_dir } ){
  opendir(DIR, $orig_dir) || die;
  my @files = grep(/.xls/, readdir(DIR));
  closedir(DIR);
  foreach (@files){
    my $xls = $orig_dir . $_;
    my $oBook =
      Spreadsheet::ParseExcel::Workbook->Parse( $xls, $oFmtJ);
    
    my $ws; my $wc;
    for(my $i = 0; $i < $oBook->{SheetCount}; $i++){
      $ws = $oBook->{Worksheet}[$i];
      if( $ws->{Name} =~ m!$sheet! ){
        printf qq{XLS:%s  Sheet:%sn}, $xls, $ws->{Name};
        for(my $r = $ws->{MinRow}; $r <= $ws->{MaxRow}; $r++ ){
          my @buf;
          for(my $c = $ws->{MinCol};  $c <= $ws->{MaxCol}; $c++ ){
            $wc = $ws->{Cells}[$r][$c];
            my $value = $wc ? $wc->Value : ''; $value =~ s/,//g;
            push(@buf, $value );
          }
          print join(',', @buf), "n" if @buf;
        }
      }
    }
  }
}

これだけ。
今日は、ヨメと昼前には麻布十番納涼祭りに出かける予定だったので、時間がないかな、と思ってたのに、20分もかからずスクリプト完成。あとは現物合わせな例外処理だの作りこめば実戦投入できる。
いやもう、ほんと便利で、DBD:Excelの作者には大感謝!糞エクセルからまた一歩離れることができたゼ。ざまみろ。って、休みに仕事なんぞしてちゃいかんだろ、おれ。

大盛況おお賑わい大混雑の麻布十番納涼祭り。今年こそは国際バザールでちゃんと食おうと、開店前に並ぶ気合。ヨメはドイツ、わたしはブラジルに並び、フランクとシュラスコをがっつり食う。比較的すいていたラオスでおじいさんとおばあさんが上げていたスパイシーチキンまで堪能できた。ちなみに、3時開店のときにはもう行列となっていた。どれも美味でありました。大満足。
その後麻布十番側にいって、うろつく。オリオンビールとか赤ワインとか純米酒とか、馬肉ソーセージとか。しかし、今日の暑さ、人ごみにバテバテ。面白かったんだけど、ちょっと余裕がなかった、かも。

あとは、部屋でのたのた転がるかしらん。

 

»電子書籍制作代行についてはこちら

profile

profile

 
doncha.net
contact:
»運営者
@t2aki@tokoroten.doncha.net

ところてんx5

2024/4/19 20:13

帰ったら修正入れよう

2024/4/19 20:12

to_poolはちゃんと意図通りにメンションをpoolに保存してるので問題ない。
disp_timelineにcircle判定を入れた時にバグった。mentionはpublicでもcircleでもないのでここで弾かれてる。
mentionは無条件で表示させないとだめだろ

2024/4/19 13:30

うげ。DMを取りこぼしてる

検索
<<2024/4>>
 123456
78910111213
14151617181920
21222324252627
282930

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版