>>413
化ける余地がありそうなところがeucからutf16に変換するところとwrite_unicodeの
2箇所あるので、どっちかぐらいは切り分けてから質問した方がいいと思われる。

最初の変換で化けているならSpreadsheet::WriteExcelが云々というのは全く無駄だし、
write_unicodeで化けているならUnocode::Stringで変換したとか曖昧なことを言わずに
化けるutf16文字の文字コードをきっちり書くべきだ。