PerlのExcel::Writer::XLSXモジュールで日本語をセルに吐き出すのに苦労したのでmemo
なんかかなり効率悪いことしてる気がするけど、動くことは動く。
@bufferに配列として、文字列データが入っていることを想定
# 配列データをExcelシートに吐き出す
for(my $i = 0; $i < $#buffer; $i++){
my @splitedText;
my @decodedText = split(//, decode('ShiftJIS', $buffer[$i]));
map { push(@splitedText, unpack('H*', encode('UTF16BE', $_))) } @decodedText;
$worksheet->write_utf16be_string($iLine, $i, pack('n*', map {hex($_) } @splitedText));
}