今年も年賀状の時間がやってきました
トラブルを避けるため数年前から宛先はCSV書き出しで印刷してもらっています
宛名職人で住所録・送り管理だけしていたけれど、この機能のためだけにバージョンアップ繰り返しているのがすごくもったいない
自前でプログラム書くかな... あるいは goでweb管理にするか..
とりあえず宛名職人26から年賀家族用のCSVへの出力変換プログラムは下記。
nengakazoku.pl
#!/usr/bin/perl -w # 宛名職人から年賀家族 CSVへの変換 # 宛名職人からスマートグループで必要なデータを一覧表示にする # ファイル>書き出しにてカンマ区切り形式、エンコード:UTF-8, 改行コード: LF, 書き出す対象:一覧表示で書き出す # 姓、名、敬称、姓かな、名かな、自宅〒、自宅住所1,2,3、連名、連名敬称、で書き出す # このperlを使って変換する # perl -f nengakazoku.pl < CSV.csv > css.csv # nkf -s -Lw css.csv >2020-ks.csv # 来年からは宛名職人やめたいな 毎年アップデート要求するとかクソすぎ use strict 'refs'; use utf8; use Encode; binmode STDOUT, ":encoding(utf8)"; binmode STDIN, ":encoding(utf8)"; print "\"お名前(姓)※必須\",\"お名前(名)※必須\",\"敬称※必須\",フリガナ(セイ),フリガナ(メイ),\"自宅郵便番号※必須\",\"自宅住所1※必須\",自宅住所2,自宅住所3,自宅住所4,様方,連名1(姓),連名1(名),連名1敬称,連名2(姓),連名2(名),連名2敬称,連名3(姓),連名3(名),連名3敬称,連名4(姓),連名4(名),連名4敬称,連名5(姓),連名5(名),連名5敬称,\"会社名1※法人の場合必須\",会社名2,部署名1,部署名2,役職1,役職2,\"会社郵便番号※法人の場合必須\",\"会社住所1※法人の場合必須\",会社住所2,会社住所3,会社住所4,会社連名1(姓),会社連名1(名),会社連名1敬称,会社連名1役職,会社連名1役職2行目,会社連名2(姓),会社連名2(名),会社連名2敬称,会社連名2役職1行目,会社連名2役職2行目\n"; $_ = <STDIN>; LINE1: while (<STDIN>) { chomp; ($n0,$n1,$n2,$f0,$f1,$a0,$a1,$a2,$a3,$r0,$r1)=split(",", $_); $r00=""; $r01=""; $r02=""; $r03=""; $r10=""; $r11=""; $r12=""; $r13=""; if(index($r0,"/")>=0) { ($r00,$r01,$r02,$r03)=split("/",$r0); } else { $r00=$r0; } if(index($r1,"/")>=0) { ($r10,$r11,$r12,$r13)=split("/",$r1); } else { $r10=$r1; } printf "%s,%s,%s,", $n0,$n1,$n2; # お名前(姓),お名前(名),敬称 printf "%s,%s,", $f0,$f1; # フリガナ(セイ),フリガナ(メイ) printf "%s,%s,%s,%s,,,", $a0,$a1,$a2,$a3; # 自宅郵便番号※必須,自宅住所1※必須,自宅住所2,自宅住所3,自宅住所4,様方, printf ",%s,%s,", $r00,$r10; # 連名1(姓),連名1(名),連名1敬称, printf ",%s,%s,", $r01,$r11; # 連名2(姓),連名2(名),連名2敬称, printf ",%s,%s,", $r02,$r12; # 連名3(姓),連名3(名),連名3敬称, printf ",,,,,,"; # 連名4(姓),連名4(名),連名4敬称,連名5(姓),連名5(名),連名5敬称, printf ",,,,,,,,,,,,,,\n"; # \"会社名1※法人の場合必須\",会社名2,部署名1,部署名2,役職1,役職2,\"会社郵便番号※法人の場合必須\",\"会社住所1※法人の場合必須\",会社住所2,会社住所3,会社住所4,会社連名1(姓),会社連名1(名),会社連名1敬称,会社連名1役職,会社連名1役職2行目,会社連名2(姓),会社連名2(名),会社連名2敬称,会社連名2役職1行目,会社連名2役職2行目 }