CSVで抽出したデータを縦に並べることができるか質問です。
現在CSVで抽出したデータが横並びになっており、
それを縦列に並べ替えしたいです。
大変恐縮ですが、お力添え頂けますと幸いです。
There is no direct activity as such as it is not a direct transpose
You can read data into datatable and then perform loop on enumerable.Range(0,6)
Before that create a datatable dt2 with 2 columns
Ans inside loop use the current index and current index+6 to get the requred rows and add in add data row activity
Add data row ,array row should be {dt.Rows(0)(currentindex).ToString,dt.Rows(0)(currentindex+6).ToString} and give datatable ad dt2
Cheers
Excel表の組み替えについて.zip (4.1 KB)
説明するより見ていただいた方が早いかな?
と思って、ざっくり作成してみました。
【前提】
・社員列と金額列だけで構成されている。
・社員列数と金額列数が同じ。
・社員列が続いた後、金額列が続く
【解説】
・データ列の半分の回数分、データ行を追加する。
・その時の値は、入力元のDataTableの1行目(Row(0))のix列と、ix + 列数列である
お忙しい中、データの作成までしていただき誠にありがとうございます!
データ確認させて頂きまして動作自体は、実際の業務フローに組み込むことができそうです!ありがとうございます。
メッセージボックスの内容がどのような動作?をしているか把握できず、もしよろしければご解説いただけますでしょうか?
素人質問になってしまい大変申し訳ございませんが、
お時間ございましたらよろしくお願いいたします。
String.Join(“,”, dt_yulax.Columns.Cast(Of DataColumn).Select(Function(C) C.ColumnName)) & ControlChars.Lf & _
String.Join(ControlChars.lf, dt_yulax.AsEnumerable.cast(Of Datarow).select(Function(R) String.Join(“,”, R.ItemArray)))
基本的なところでは、String.Joinメソッドでしょうか。
String.Joinメソッドは、String.Join(区切り文字, 配列要素)とすると、配列要素の1要素ずつ、区切り文字で連結してくれるものです。
それを踏まえて、先の呪文を簡略化すると、
String.Join(“,”, A) & ControlChars.Lf & _
String.Join(ControlChars.lf, B)
になります。Aは、配列になった列情報、Bは配列になった行情報になります。
配列になった列情報Aは、dt_yulax.Columns.Cast(Of DataColumn).Select(Function(C) C.ColumnName)です。
これは、DataTable型の変数(dt_yulax)のそれぞれの列情報(Columns)を、DataColumn型に型変換(Cast)して、その列情報の中から、Function関数を使って、列名(C.ColumnName)を取得するものです。
この.Selectってのが、列名(C.ColumnName)を、配列要素として取得する"呪文"ですね。
この呪文は"Linq式"と言うのを調べると出てきます。
配列になった行情報Bは、dt_yulax.AsEnumerable.cast(Of Datarow).select(Function(R) String.Join(“,”, R.ItemArray))です。
これは、DataTable型の変数(dt_yulax)から、それぞれの行情報を配列にして(AsEnumerable)、それをDataColumn型に型変換(Cast)して、その行情報の中から、Function関数を使って、行のそれぞれの値(R.ItemArray)を、String.Joinを使って、データ行1行分の文字列としてを取得するものです。
そのデータ行1行分の文字列を、ControlChars.lfで区切った文字列にします。
混乱しちゃいますね(^^♪
新たに添付したファイルは、昔自分がDumpを取得するための作っていた共通XAMLです。
それと比べると、今回使った"Linq式"でのダンプの方法が、いかに簡単だと言う事がわかると思います。
Excel表の組み替えについて.zip (7.0 KB)