Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
こんにちは。
こちらに初めて投稿させていただきます。
talend.jpのときにも一度投稿させていただきました内容になります。
xlsx形式のExcelファイルからtExcelInputを実行した場合、「文字列」のセルが「文字列モジレツ」といったような感じで抽出されます。
要するに、(不要なのに)かなをデータとして引っ張ってきてしまいます。
http://blog.remora.cx/2010/03/annoying-cell-value-with-furigana.html
英語のコミュニティにも投稿してみましたが、私の英語力の問題と英語圏の人にあまり関係のない問題なので、解決策が見つかりませんでした。
先日、仕事で違うETLツールを使う機会があったのですが、その製品ですとExcelのライブラリが「JExcelApi」のようです(TalendはPOIでしょうか?)。
そのツールですと上記のような事象が発生せずに利用可能でした。
せっかくの日本語コミュニティですので、同じ事象でお困りの方がいらしたら教えていただきたいのと、TalendでJExcelApiのライブラリでExcelを操作するやり方をご存じの方がいらっしゃればご教示いただきたいと思っています。
t-takamatsuさん
TOS 6.4.1 + Office 365(Excel 2016 MSO 64bit)で試してみたのですが、なかなか再現できないですね。何か他の要因は考えられるでしょうか。シンプルに空のExcelファイルを開いて「文字列」と入力して、tFileInputExcelで読み込んでみたのですが、「文字列」しか出てきませんでした。
PS. ご推察の通り、Talendは、Excelファイルのread/writeには、Apache POIを内部で使用しています。
@mlorberさん
ありがとうございます。
会社のデータなのでお見せできないのですが、同じカラムでも難しいのが必ずつくというわけではなく、
カナがついてくるセルとつかないセルが発生しています。
Excelで入力した時に付与されるのかもしれません。
以前、xls形式のファイルを結構扱っていたのですが、そのときは発生した経験はありません。
xlsx形式になってから確認しています。
可能性としては、引用させていただいたリンクにかかれているようにPOIの方でrPhというタグを拾ってしまっているのではないかと推測しています。
ただ、私の方でxml形式にしてみてみても、rPhのタグが確認できておらず、今ひとつ決定的な原因とは言い切れないのが悩ましいところです。
少し興味があって調べてみましたが、TOS DI 7.1.1 (POI 3.16) + Excel 2016 では問題を再現させることができませんでした。
rPh タグはフリガナタグのようですね。IMEから渡されているようで、セルに直接入力したり、再変換をしたりするとタグが sharedStrings.xml に挿入されることが確認できました。そのため、文字列を直接セルにコピー&ペーストすると挿入されません。こちらでは、そのようにして該当タグが存在することを確認して実行してみましたが、問題は再現しませんでした。
再現パターンの絞り込みがカギになりそうです。