PSLブログ

ヨシナシゴトヲツヅリマス

Spreadsheet::XLSXでValの値についてしまうフリガナを除去

ExcelのワークシートをPerlで読み出してごにょごにょするプログラムを使っているだが、以前は98以前のバイナリを扱えるSpreadsheet::ParseExcelを使っていたが、さすがに古いので、同じ人がメインテナーをやっているSpreadsheet::XLSXを使っている。ところが、タイトルの通り、セルの値をValで取ってくると、フリガナがくっついてしまう(いつもではない、つくのとそうでないのとがある…)。ググったらズバリの記事を発見。

【Perl】Spreadsheet::XLSXでセルの値に勝手にフリガナが付く件について

foreach my $si ($mstr =~ /<si.*?>(.*?)<\/si/gsm) {
+                       $si =~ s!<rPh[^>]*>.*?</rPh>!!gsm;
my $str;

1行加えるだけ。とりあえず回避できた。