kunie
(kuni)
1
ExcelをRead RangeでDataTableに出力し、
データ内の日付欄の年月日をそれぞれ取得し、
その後ループで年月日をそれぞれ使用したいたいのですが、
全く分からずお手上げ状態の為、ご教授お願いしたいです。
元のExcelデータ
No,日付,名前
1,2019/5/8,Aさん
2,2019/5/13,Bさん
3,2019/5/16,Cさん
4,2019/5/17,Dさん
5,2019/5/21,Aさん
データイメージ
No,年,月,日,名前
1,2019,5,8,Aさん
2,2019,5,13,Bさん
3,2019,5,16,Cさん
4,2019,5,17,Dさん
5,2019,5,21,Aさん
1 Like
こんにちは!
あなたの懸念を念頭に置いた私の解決策は次のとおりです。
1.データテーブル作成アクティビティを使用します。 データテーブル名がdtOutputだとしましょう。
dtOutputには5つの列があります(いいえ、年、月、日、名前)。
2. Excel Application Scope内で、Read Rangeアクティビティを使用します。
3.各行について
3.1 arrDate(String 型)= row( “Date”)。Split( “/”)を代入する
3.2 dtOutputにデータ行を追加する
ArrayRowは次のようになります。{row( “No”)。ToString、arrDate(0).ToString、arrDate(1).ToString、arrDate(2).ToString、row( “Name”)
データテーブルは次のようになります。dtOutput
2 Likes
その後、dtOutputデータテーブルをループ処理するためにfor Each Rowを使用できます。
お役に立てれば
1 Like
kunie
(kuni)
4
早速の解答ありがとうございます。
現在教えて頂いた内容を読みながら操作してます。
ちなみに教えて頂いた手順は、
1.データテーブル作成(Build Data Tabl)アクティビティで
(No,、年、月、日、名前)のテーブルを作成し、出力をdtOutputとする。
2.Excel Application Scope内で、Read Rangeアクティビティを使用して、
元のExcelファイルを読み込み。
3.Excel Application Scope内にAssignを追加して、arrDate(String 型)= row(“Date”).Split( “/”)と入力ということでしょうか?
rowはどこからでてきたんでしょうか?
せっかく教えてもらったのに、理解できなくてすいません。
こんにちは! Read Rangeアクティビティを使用すると(Excelファイルを読み込むため)、そのアクティビティの出力はデータテーブルになります(データテーブル名としてdtInputとします)。 そのデータテーブルは、For Each Rowで使用するものです。
2 Likes
yukino
(kawahara)
6
いろいろと論点がありますがー。
① 表記記載の元エクセルデータの年月日は1セルに記載されていますか?
→その場合、[Read Range]アクティビティで取得すると、自動的に年、月、日をカラムに割ってもらえないように思います。年月日で1カラムになると思います。
→[Read Range]で取得したデータテーブルをそのまま[Write CSV]等で出力してみてください。
② 年月日の形の文字から、年だけ、月だけ、日だけ を個別に取得することができます。
→無理に年月日をセルに分割する必要はないのでは?
1 Like
kunie
(kuni)
7
教えていただいた方法で作成したんですが、
3.1 arrDate(String 型)= row( “Date”).Split( “/”)を代入する
上記を入力すると、画像のようなコンパイラエラーが表示されてしまします。
エラー内容
Compiler error(s) encontered processing expression “row(“日付”).split(”/“)”.
Option Strict Onでは、遅延バインディングを使用できません。
せっかく教えて頂いたのに、活かせなくすいません。
1 Like
kunie
(kuni)
8
図解付きの説明ありがとうございます。
すごく分かり易かったです!
1 Like
system
(system)
Closed
9
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.