投稿者 魔界の仮面弁士  (社会人) 投稿日時 2019/8/14 09:38:11
訂正と追記

> For Each entry1 As KeyValuePair(Of KeyValuePair(Of String, String), String) In dic

上記は
 For Each entry1 As KeyValuePair(Of String, Dictionary(Of String, String)) In dicGyou
に差し替えておいてください。投稿時に直し漏れてました。


それから
> '未登録の列見出しを追加
> dt.Columns.Add(gDay, GetType(String)).AllowDBNull = True
のところでは、列見出しをそのまま出現順に追加しています。

見出しの並び順も制御する必要がある場合には、下記のような方法が使えます。
(後者の方が手間が少ないかな…?)


(案1) 末尾に Add した後、DataColumn の SetOrdinal メソッドを使って、列の並び順を入れ替える。

(案2) 列挙中に Add するのではなく、一旦すべて Dictionary なり List なりに詰め込んでから、
 そのコレクションから列見出しの一覧を取得しなおし、Array.Sort 等で並べなおしてから
 Columns.Add するようにする。


実際に変換してみた結果がこんな感じ。