[Seasar-user:7588] Re: readXlsWriteDb でスペースを設定するには

o.h. [E-MAIL ADDRESS DELETED]
2007年 5月 11日 (金) 12:58:06 JST


長谷川です.

o.h. wrote:
> 
>>> Excelがたまに(?)空なのに半角スペースを返すことがあり、
>>> それに対応するために、半角スペースをtrimしています。
> 
> のせいかも知れませんが、たまに固定長の長さを超える値を設定しようと
> して例外となります.
> 
> 具体的には、長さ2のフィールドに対して 'XX' を Excel に記述していた
> 場合に 'XX '(3文字)といった値を設定しようとする場合があるようです.
> 

> 以上から trim 自体はしてもらうことにして、長さが 0 の場合でも null と
> しないような動作にしていただくのが一番いいかなと思ったのですが、それ
> だと null を設定したい場合に問題になりますね.
> #ん〜、どうすればいいんだろう
> 

これなんですが、 Excel に引用符で囲んだ場合の処理を追加すること
はできないでしょうか.
そうすれば、文字列長を明示することができそうです.

1. Cell の文字列を trim する
2. "" だったら null
3. 引用符で囲まれたら strip する(エスケープ文字を考慮して)

ぐらいの処理になれば trimString の判断はいらないような気がします.

・[  ] -> trim -> null
今まで通りの動作

・["  "] -> trim -> 引用符取り除く -> [  ]
スペースを返す

となるため、とりあえずは想定した動作になりそうです.

以上.
-- 
_/_/
_/_/ mailto: [E-MAIL ADDRESS DELETED]
_/_/ (deprecated: [E-MAIL ADDRESS DELETED])
_/_/



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