いつもお世話になっております。
Excelをデータテーブルで読み込み、
列「製造年」に記載されている文字が 2023年1月 ならば 202301 のように
日付表示を変更したいです。
string型の列「date」を追加し、その列に対して以下の通り処理しましたが、
エラー:「文字列は有効な DateTime ではありませんでした。」
となりました。
解決方法を教えて頂きたくよろしくお願い致します。
いつもお世話になっております。
Excelをデータテーブルで読み込み、
列「製造年」に記載されている文字が 2023年1月 ならば 202301 のように
日付表示を変更したいです。
string型の列「date」を追加し、その列に対して以下の通り処理しましたが、
エラー:「文字列は有効な DateTime ではありませんでした。」
となりました。
解決方法を教えて頂きたくよろしくお願い致します。
Can you please try this…
DateTime.ParseExact(row("Date").ToString.Trim, "MMMM yyyy", System.Globalization.CultureInfo.InvariantCulture ).ToString("yyyyMM")
To be sure once print the date value that is being extracted and change the input format accordingly…MMMM yyyyy is for January 2023 format
Hope this helps
Cheers
こんにちは
やり方はいくつかありますが
正規表現
System.Text.RegularExpressions.Regex.Replace(yourString,"(\d+)年(\d+)月",Function(m) m.Groups(1).Value+m.Groups(2).Value.PadLeft(2,"0"c))
DateTime変換 日本用のカルチャ設定が出来ていれば
CDate(yourString).ToString("yyyyMM")
いつもありがとうございます。
こちらで試すと、結果が、27445 と出てきました。
また、こちらで試すと、このようなエラーになりました。
どこの設定を間違えたのか分かりますでしょうか。
こんにちは
入力値が
2023年1月
ではなく
27445
になっています。
まずは元データを確認してもらえますでしょうか?
UiPathではなくEXCELの操作(式の記述)だけでできそうですがUiPathを使う理由があるのでしょうか・・・
いつもありがとうございます。
今、現在は、データテーブルを読み込んで列全部を繰り返し処理では、
処理時間が掛かってしまうので、
セルを読み込み で こちらのセルを読み込んでいました。
ご指摘を受けて、中身を確認すると、日付と思っていたものが数字でした。
こんにちは
エクセルのシリアル値ですね。以下お試し下さい
DateTime.FromOADate(CDbl(yourString)).ToString("yyyyMM")
お世話になっております。
元データのExcelを読み込み、中身を色々変更し、他のアプリケーションへインポートする処理を自動で行おうと思っており、Excel変更内容の1つが日付の変更でした。
仰られる通り、Excelでしてしまえば早い処理ですね。
いつもありがとうございます。
1セルで試した結果、無事にyyyyMM表記になっていました。
ありがとうございます。
列全てに繰り返しで試してみます。
いつもお世話になっております。
列の中に、日付ではなく、 - のセルもあり、そこでエラーになりました。
ーは、スルーし、日付部分のみを表示変更したいので、
ーかどうかで条件分岐も思ったのですが、
2000行程あるので、出来れば、繰り返し各行ではなく、
以前に教えて頂いた invoke code を使用し、繰り返そうと思っておりました。
何か方法はありますでしょうか。
見た目だけで良ければFormat Cellsで書式だけ書き換える方法もありますが...
実データ書き換えですと、InvokeCodeかテーブルが小さければ、DataTable.LoadDataRowを使うことになると思います。
いつもありがとうございます。
元データを読み込み、中身の変更、追加後、専用アプリへのインポートを希望しております。
インポートする際のデータの表示をyyyyMMとしたく、元データのExcel上にデータを戻すことはないので、実データを変更しないといけないわけではないのですが、
どのようにするのがベターとなりますでしょうか。
こんにちは
InvokeCodeを使って、中身は
dt.AsEnumerable.Where(Function(r) Double.TryParse(r("製造年").ToString,New Double)).ToList().ForEach(
Sub(r)
r("製造年")= DateTime.FromOADate(CDbl(r("製造年").ToString)).ToString("yyyyMM")
End Sub
)
dtはIN/OUT型のDataTable型引数として定義してください。
ありがとうございます。
このようなこのようなエラーになったのですが、
ーは、外して日付表示を変えて、-の行を追加することになりますでしょうか。
これはどちらで発生したものでしょうか?上記のInvokeCode内のコードではこれは出ないように思えますが...
いつもお世話になっております。
大変失礼いたしました。
スタートしていない状態でした。
お陰様で無事に表示が変わっておりました。
本当にありがとうございました。
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.