[Seasar-user:4030] [S2Unit]Excelのシート名文字数制限で長いテーブル名が入らない。

kubo [E-MAIL ADDRESS DELETED]
2006年 7月 6日 (木) 17:13:20 JST


久保です。

S2Unitにおいて

テストデータ投入でExcelのシート名にテーブル名を定義しますが、
Excelのシート名文字数制限で長いテーブル名が定義できません。
(32文字制限!?)

DBの定義はお客様のもので、変更することができません。


他にもこのような状況に遭遇した方がいるかと思いますが、
何か対処方法はありますでしょうか?
また、S2Unitとして正式な対応はできませんでしょうか?
                           (既にありますでしょうか?)


思いついたのは、

<A>
独自のXlsReaderを作って、例えばシート名が「$」始まりの場合は、
以下のような定義からテーブル名を引いてくる。

  $artist = AritstIdentity... (長いテーブル名)
  $title = TitleIdentity... (長いテーブル名)

ただ、その場合、XlsReader.createTable()がprivateなので、
XlsReaderをまるごとコピーして新たなクラスを作らなければならない。


また、

<B>
独自のXlsReaderを作って(これは一緒だ...)、
例えばシート名が「$Table」の場合は、
以下のような定義からテーブル名を引いてくる。
1行目の1番目のセルをテーブル名として取得する。
これだと、Aとは違って、Excelの世界だけで解決できる。

また、

<C>
独自のXlsReaderを作って(一緒)、
Aで利用するような定義を[$TableMapping]という名前のシートに
定義しておいて、シート名が「$」始まりの場合はそれをキー値として
テーブル名を取得する。





# S2Unitとして対応が特にないならば、どうしても
# 独自のXlsReaderを作成することになるので(かもしれないので)、
# せめてXlsReader.createTable()あたりをprotectedにしてもらいたいです。
# (.NETの場合は、さらにvirtualを (さらにReadXlsにvirtualを...))


-- 
kubo <[E-MAIL ADDRESS DELETED]>





Seasar-user メーリングリストの案内