簡易データテーブル編集ソフト(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でインポート、エクスポートします。