UiPathでExcelを操作する(活用編: CSVファイルをxlsx形式に変換する)


UiPathでExcelを操作する(活用編: CSVファイルをxlsx形式に変換する)

概要

UiPathでcsvファイルをxlsx形式に変換して保存する方法をご紹介します。

本記事では、UiPathでExcelを操作する(活用編: 名前を付けて保存する[完成版])の実装および、アクティビティを流用します。

お約束事項(免責事項)

  • この記事は2020年6月時点の情報を基に作成しております。
  • 記事の内容は私個人の見解であり、所属する組織の公式見解ではありません。

スキル

この記事には、C#によるカスタムアクティビティの開発が含まれます。
カスタムアクティビティの開発方法は、UiPath公式のドキュメントを参照ください。
(本記事では最低限のみ記載します。)
https://docs.uipath.com/activities/lang-ja/docs/creating-a-custom-activity

必要なソフトウェア

  • Visual Studio
  • Nuget または Nuget Package Explorer
  • Microsoft Office

実装(前回と同じ)

using Microsoft.Office.Interop.Excel;
using System;
using System.Activities;
using System.ComponentModel;

namespace UiPathCustomLibrary
{
    public class SaveAs : CodeActivity
    {
        [Category("Input")]
        [RequiredArgument]
        public InArgument<Object> WorkbookApplication { get; set; }
        [Category("Input")]
        public InArgument<String> FileName { get; set; }
        protected override void Execute(CodeActivityContext context)
        {
            // 引数(InArgument)より、WorkbookApplicationのオブジェクトを取得する
            // WorkbookApplicationの属性に必須(RequireArgument)を指定しているため、workbookappのnullチェックは不要
            object workbookapp = WorkbookApplication.Get(context);

            // WorkbookApplicationから、Microsoft.Office.Interop.Excel.Workbook型として(キャストして)、CurrentWorkbookを読み込む
            Workbook workbook = workbookapp.GetType().GetProperty("CurrentWorkbook").GetValue(workbookapp) as Workbook;

            // WorkbookのプロパティからApplicationを取得する
            Application application = workbook.Application;
            // 変更前のDisplayAlertを保持する
            bool prevDisplayAlert = application.DisplayAlerts;

            // DisplayAlertを一時的にFalseにする
            application.DisplayAlerts = false;

            // 名前を付けて保存する 
            workbook.SaveAs(Filename: FileName.Get(context), FileFormat: XlFileFormat.xlOpenXMLWorkbook, CreateBackup: false);

            // DisplayAlertを元に戻す
            application.DisplayAlerts = prevDisplayAlert;
        }
    }
}

実行確認

ExcelApplicationScopeでは”Sample.csv"ファイルを指定し、SaveAsでは"Sample2.xlsx"としています。
Nuget Package Explorerで作成したライブラリをUiPath Studioでインストールした後、早速使ってみます。
「c:\tmp\Sample2.xlsx」として名前を付けて保存します。
※ 保存先は絶対パスで指定してください。