xlsx形式のExcelに関して

Five Stars

xlsx形式のExcelに関して

こんにちは。

こちらに初めて投稿させていただきます。

 

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を操作するやり方をご存じの方がいらっしゃればご教示いただきたいと思っています。

Highlighted
Moderator

Re: xlsx形式のExcelに関して

t-takamatsuさん

 

TOS 6.4.1 + Office 365(Excel 2016 MSO 64bit)で試してみたのですが、なかなか再現できないですね。何か他の要因は考えられるでしょうか。シンプルに空のExcelファイルを開いて「文字列」と入力して、tFileInputExcelで読み込んでみたのですが、「文字列」しか出てきませんでした。

 

PS. ご推察の通り、Talendは、Excelファイルのread/writeには、Apache POIを内部で使用しています。

 

 

---
Have fun!
Five Stars

Re: xlsx形式のExcelに関して

hmasaganeさん

 

ありがとうございます。

会社のデータなのでお見せできないのですが、同じカラムでも難しいのが必ずつくというわけではなく、

カナがついてくるセルとつかないセルが発生しています。

Excelで入力した時に付与されるのかもしれません。

 

以前、xls形式のファイルを結構扱っていたのですが、そのときは発生した経験はありません。

xlsx形式になってから確認しています。

 

    <rPh sb="0" eb="3">
      <t>モジレツ</t>
    </rPh>
 

可能性としては、引用させていただいたリンクにかかれているようにPOIの方でrPhというタグを拾ってしまっているのではないかと推測しています。

ただ、私の方でxml形式にしてみてみても、rPhのタグが確認できておらず、今ひとつ決定的な原因とは言い切れないのが悩ましいところです。

Six Stars

Re: xlsx形式のExcelに関して

少し興味があって調べてみましたが、TOS DI 7.1.1 (POI 3.16) + Excel 2016 では問題を再現させることができませんでした。

 

rPh タグはフリガナタグのようですね。IMEから渡されているようで、セルに直接入力したり、再変換をしたりするとタグが sharedStrings.xml に挿入されることが確認できました。そのため、文字列を直接セルにコピー&ペーストすると挿入されません。こちらでは、そのようにして該当タグが存在することを確認して実行してみましたが、問題は再現しませんでした。

 

再現パターンの絞り込みがカギになりそうです。