-XlsDataSetについて

先に書いたように、ExcelにPOIでデータを書き出してましたが、私はこのへん手を抜いて一般化していませんでした。詰めが甘いですね。自分でゼロから考えずに人の考えに突っ込みいれるのは申し訳ないですが、XlsDataSetのアイディアについて、ランチをとりながら考えました。Excelシートの一行目に型をいれて、二行目にカラム名だったらJDBCにおけるResultSetMetaDataにあたるような機能も実現できていいかなと。一行目にカラム名で二行目に型だと、ExcelOutputter作ったときにやって気が付いたのですが、ピボットテーブルやグラフを作るときに型の表示行が邪魔してしまうのです。よってカラム名2行目において、3行目以降のデータと隣接させてます。
XlsDataSetってトランザクションもできるのかな?POIは書き出すまでオンメモリで持ってるからできる?さすがにPOIで行ロックは厳しい(ページロックでも厳しいかな)からマルチユーザーは無理にしても、ExcelとDB混在の2フェーズコミットできたら鬼ですね。


と、ひがさんからコメント入りましたが、なるほどHSSFCellの型情報ですか。まったくチェックしてませんでした。だから、上のcreateCell(...)でも、思いっきり型を意識せずやってます(笑)。脊髄反射的な思いつきですが、byte[]、BLOB、CLOBの型はXlsDataSetでBase64デコードもやるわけですから、データのBase64エンコード後にメタ情報をセルの書き込みデータの先頭に埋めちゃえばいかがでしょうか?

セル書き込みデータ[
  メタ情報[
    型
  ]
  Base64エンコードデータ
]

という構造です。