[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 メーリングリストの案内