簡易データテーブル編集ソフト(dtedit-20151212v003b)
NETのDataTableクラスのオブジェクトを編集する簡易エディタを作ってみました。
.このソフトは、.NETクラスを理解、勉強するために作りました。
動作
①.NETのデータセット(DataSet,DataTable...)クラスのDataTableクラスのオブジェクトを編集
②オブジェクトをXMLファイル(スキーマ:xsd、データ:xml)に保存
③XMLファイル(XMLデータ)を共有するエクセルのブックを作成
④作成したエクセルのブックを自動設定(列固定、キャプション表示、表示形式、シート保護、etc.)
ダウンロード
http://u-iwasaki.bbnav.com/dtedit-20151212v003b.zip
ファイル
dtedit-20151212v003b
.dtedit<>
..datatypes.xml
..datatypes.xsd
..dtedit.exe
..dtedit.exe.config
..excel.ini
.sample<>
.. Part.xlsx
.. Part.xml
.. Part.xsd
dtedit<>は実行ファイルです。
datatypes.xml/xsdはデータ型テーブルです。
もしかして不足のファイルがありましたら、コメントお願い致します。
sample<>はサンプルファイルです。
動作環境
OS:Windows7(32bit)
DLL:NET Framework 4.6.100.0
アプリ:Access2013,Excel2013
注意点
・不具合、バグ
かなりデバッグしたつもりですが、まだまだ、バグがあると思います。
・動作確認
動作を確認したデータ量は少なく、多量のデータに耐えられるのか未確認です。
出来ればデータも少量で、小まめに保存してください。
・データ型変更
データ列(DataColumn)のデータ型(DataType)変更時は、①全データ行(DataRow)の保存とクリア、②データ列の再構築、③保存データの再読み込みを行います。
そのため、データ量が増えれば増えるほどこの処理は遅くなります。
また、この処理を施しても、キャスト関係のエラーが発生することがあります。
・テーブル編集
テーブルのデータ編集は、最低限の機能しかありません。
・エラーが発生したら
何はともあれデータを保存してください。
その後、再読み込みます。
(もし保存が失敗したら・・・残念ながら)
データセット
DataSet・・・データセット
DataTable・・・データテーブル
DataColumn・・・データ列
DataRow・・・データ行
このDataTableクラスのオブジェクト(インスタンス)を編集します。
フォーム
このフォームは、サンプルのPART.xsd/xmlを開いて、「設定プロパティ」のキャプション(Caption)表示をTrueにした状態です。
・メニュー【ファイル】
ファイルの操作とエクセルを作成します。
関連=>エクセル作成
・メニュー【設定】
データ型テーブル読み込み、設定プロパティを表示します。
関連=>データ型テーブル、設定プロパティ
・メニュー【ヘルプ】
バージョン情報を表示します。
・テーブル名、ルート名
XMLファイルのテーブル名、ルート名です。
初期・新規作成時はdatatable、datarootです。
・列リスト
データテーブル(DataTable)のデータ列(DataColumn)のリストです。
リストの背景が白色はデータ列(DataColumn)、黄色は「テーブル表示」または「エクセル作成」、緑は「エクセル作成」のみに関係する列です。
名前・・・データ列の名前
キー・・・データ列のキー
列固定・・・テーブル表示・エクセル作成の列固定
表示形式・・・テーブル表示の表示形式(DataGridView)
XLSスキーマ型・・・エクセルに対応付けるスキーマのデータ型
XLS表示形式・・・エクセルの列(セル)の表示形式
⇔ボタン・・・「列リスト」「列プロパティ」表示位置の切り替え(上下、左右)
▲▼ボタン・・・列の移動
追加ボタン・・・列の追加
削除ボタン・・・列の削除
XLSスキーマ型は、「列プロパティ」のデータ型(DataType)に対応したエクセルのスキーマのデータ型です。
「列プロパティ」のデータ型(DataType)変更時に変化します。
データ型(DataType)は「データ型テーブル」よりXLSスキーマ型に変換します。
省略(空文字)時は「設定プロパティ」のスキーマ型デフォルト(string)になります。
XLS表示形式はエクセルの表示形式を入力します。
省略時(空文字)は「列プロパティ」のデータ型(DataType)がSystem.Stringの場合、エクセルの表示形式は文字列(@)、それ以外は標準になります。
これは、データ型が文字列なのに、エクセル側でセルに入力した数字を数値と判断されたり、ゼロサプレスされたりしないようにするためです。
関連=>列プロパティ、データ型テーブル、エクセル作成
・列プロパティ
「列リスト」で選択されたデータ列(DataColumn)のプロパティです。
関連=>列プロパティ
・テーブル表示
データテーブル(DataTable)を表示します。
データ行(DataRow)を追加・変更(編集済み行として背景色が変化)、行を削除(Deleteキー)すると「更新・取消」ボタンが有効になります。
再表示ボタン・・・テーブルの再表示
更新ボタン・・・編集済み行、削除の更新
取消ボタン・・・編集済み行、削除の取消
列プロパティ
データ列(DataColumn)のプロパティです。
データ型(DataType)を変更すると、それに対応するXMLスキーマ型も変化します。
データ型テーブル
データ型テーブルは、データ型(DataType)をXMLスキーマ型に変換するテーブルです。
テーブルのファイルは、実行ファイル(dtedit.exe)のディレクトリ下のdatatypes.xsd/xmlです。
このファイルは、dtedit.exeで編集します(上図)。
設定プロパティ
設定のプロパティです。
各プロパティの説明は、実行画面のプロパティ説明をご覧ください。
・シート保護プロパティ
シート保護は、エクセルテーブル内の読み込み専用(ReadOnly)列とエクセルテーブル以外のセルを保護(ロ
ック)し、セルの誤入力を防ぎます。
シート保護の内容は、エクセルVBAの保護関数(Protect)を参照してください。
エクセル作成
上図はサンプル(PART.xsd/xml)を開き、エクセル作成した結果です。
XMLファイルは、エクセルの開発タブのXMLでインポート、エクスポートします。