Ognacの雑感

木漏れ日々

目次

Blog 利用状況

書庫

ギャラリ

EXCELの有効利用の方法

テーブル定義書を EXCELで記述しているプロジェクトは多いです。この定義書からCreate文やストアード/トリガーを生成させるのはよくある事です。
 一度書いたものは有効利用したいのは、我々IT屋の本能ですが、その手段はどうしてます?
VS2008にはVSOTが付いてますが、実務の現場は 素のVS2005が多く、VSOTでの利用は少ないです。
EXCEL_VBAマクロを書くケースが多い気がします。最近VBAマクロはVB6臭く感じて、消極的利用になりました。
.net言語を使い、CreateObjectで excelをインスタンス化しての利用は、おかしくなったとき、Processが残ったままになったり、複数起動してメモリ圧迫したり、原則がCOM動作になりそうなので、気が進みません。
ADO.NET/OleDB を介しての操作だと、.net言語で記述できるので、最近のお気に入りです。
ところが、ExcelシートをDataTableに取り込んだ時点で、困ったことも起こります。DataTableなので列ごとの型が決まるので、Excelシートの上部にTextが入っていて、下部に数値が入っているとき、列属性が文字に設定されるようで、数字はNULLに置換されてしまいます。
 テーブル定義書の頭の3~5行はタイトルや作成者など属性記述が多く、実際の定義部分はそれ以降になっているケースが多いかと思います。数値がNULLになるのは困りものです。
 これは仕様のようで、不可避のようです。回避策として、 上部のタイトル部と、内容部の2つのDataTableに読み込み、文を生成するようにしました。
使い慣れた、.net語での開発は VBAでの開発に比べて快適で、GJになりました。
 それにしても、同じ列に文字と数字が混在するのはExcelでは当然存在することなので、NULL置換でなく、数値=>文字 で取り込んで欲しいなと思うのです。
型違反も例外も起こらずに、一方的にNULL置換するのは、「安全側に壊れる」という原則に反する気もするのですが....ブツブツ。

投稿日時 : 2008年4月12日 2:59

Feedback

# Excel関数(文字列置換) 2008/05/04 22:02 Excel関数の使い方

今回は、文字列を置換する関数をご紹介します。「=SUBSTITUTE(元の文字列,検索文字,置換文字,対象)」元の文字列の一部又は複数文字をある文字に置換する関数・・・

タイトル
名前
Url
コメント