Excelの型変換

uipathでExcelのセルの型を【標準】から【日付型】に変更したいのですが、どうやれば良いでしょうか?

UiPATH GO!の中に、「かんたん_Excel_アクティビティパック」と言うのがあって、そのアクティビティパックを参照する事により、セル > 書式 > 「範囲の表示形式を設定」と言うのがありますよ。

https://go.uipath.com/component/easy-excel-activity-pack

UiPATH GO!から「かんたん_Excel_アクティビティパック」をダウンロードするには、ID登録する必要があります。

@HANACCHI さんが、書かれている方法以外だと、

  • Invoke VBAを使う
  • WriteRangeで書き出すとき、値をDateTime型で設定する

という方法もあります。2番目の方法は、細かい書式は設定できません。
既にデータがあるなら、1度、DataTableに読み込んでから、変換することになります。

WriteDateTime.xaml (6。1 キロバイト)

1 Like

情報ありがとうございます!

1 Like

今からやってみます!

1 Like

@Risa
やってみました!
ExcelのA列に日付を入れたんですけど “48266” のように表示されてしますので、日付型に変換したいのが今回の目的でした。

その場合はA列を読み込んで、DataTimeに変換してからA列に書き込めばよいと思ったのですが、型変換がイマイチ分かりません。
教えて頂けませんか?

1 Like

日付のシリアル値(48266)を、一般的な日付(2032/02/22)として扱いたいということで合っていますでしょうか?
それであれば、DateTime.FromOADate(datetimeValue as Double)を用いることが出来ます。
datetimeValueには、Double型の数値または変数を入力してください。StringをDoubleに変換したいときは、CDbl(str as String)を利用することが出来ます。

@cheez_RPA
はい!
そういう事です!
datetimeValue には日付のシリアル値(48266)が入ったセルを読み込んでそのアウトプットデータを入れるのでしょうか?

厳密に検証したわけではないのですが、UiPathのWrite Range等、Excelに書き込むアクティビティは、書き込む前の書式の設定に、基本的には準拠する動作のようです。
ですので、セルの書式設定そのものを、変更する必要があると思うのですが・・・、セルの書式設定は通常のExcel Activity Packageにはありません。

別口で一度、書き出したい場所を、日付型にしたExcelシートかワークブックを作り、そこに書き出すようにしてみてはいかがでしょう。

@Risa
なるほど!
なので型を決めたExcelに対して上書きという形で行いました。
が他でも質問していますが、データテーブルフィルタリングが上手くいっていません😅

テスト.zip (9.0 KB)
これが出来ないのかお手すきの時にでも見てもらえないでしょうか

データテーブルのフィルタリングの後、出力の行数を見ると、0行になっています。フィルタがうまくいってないようです。
image

read.Rows.Conunt.ToString()

で、データテーブルの行数を、Write Lineで出力できます。

DataTableに読むとき、日付型が設定されているのですが、UiPathの標準設定は、日付の表記が 月/日/年 になります。アメリカ式の記法です。

色々ためしてみたのですが、Filter DataTableで、これを文字列で比較するのは、そのままではできないようなので、Excelのシートの方で、先にフィルタをかけておく必要がありそうです。
(あるいは、個別の行を、手動でやるしかなさそうです)

サンプルを作ってお渡ししたいのですが、UiPathのバージョンが、たぶん違うので、難しそうです。どのバージョンを使っていますか?

@Risa
返信が大変遅れました!
今からやってみます!!