UiPath로 Excel 작업하기(활용편: 다른 이름으로 저장하기 [완성판])

11799 단어 ExcelUiPath

UiPath로 Excel을 자유롭게 조작하기(활용편: 다른 이름으로 저장) [완성판]



개요



마지막 기사 이름을 붙여 저장하는 방법에 대해 소개했습니다.
htps : // 이 m / 타쿠소에 x / ms / 6에 5 a 54c 020b0f3 a 84c
그러나 새로 저장하는 경우는 성공했지만 아래 그림과 같이 덮어쓰기 저장 등에는 대응하고 있지 않습니다.
이 기사에서는 경고를 무시하고 강제로 이름을 지정하고 저장하는 방법을 소개합니다.



약속사항(면책사항)


  • 이 기사는 2020년 6월 시점의 정보를 기초로 작성하고 있습니다.
  • 기사의 내용은 개인의 견해이며 소속 조직의 공식 견해가 아닙니다.

  • 스킬



    이 기사에는 C#을 통한 맞춤 활동 개발이 포함되어 있습니다.
    사용자 지정 활동을 개발하는 방법은 UiPath 공식 문서를 참조하십시오.
    (본 기사에서는 최소한만 기재합니다.)
    htps : // / cs. 우이파 th. 코 m / 오 c ゔ ぃ 치 s / ぁ ぅ ㅇ / ㅇ cs / c 레 아 찐 g 아쿠 s

    필요한 소프트웨어


  • Visual Studio
  • Nuget 또는 Nuget Package Explorer
  • Microsoft Office

  • 경고 경고의 정체



    위의 이름으로 저장 확인의 정체는 "DisplayAlert"라고합니다.
    공식 문서에 설명된 대로 DisplayAlert의 기본값은 True입니다.
    따라서 공식 문서의 주석과 같이 DisplayAlert를 True에서 False로 변경합니다.
    htps : // / cs. mic로소 ft. 코 m/쟈-jp/오후우세/v바/아피/에 x세 l. 아 ぃ카치온.ぢspぁ야ぇrts

    마지막 구현



    마지막 소스 코드는 여기입니다.
    DisplayAlert는 Workbook이 아니라 Application 클래스에 포함되어 있으므로 Workbook에서 Applidation을 가져와야 합니다.
    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<Object> FileName { get; set; }
            protected override void Execute(CodeActivityContext context)
            {
                object workbookapp = WorkbookApplication.Get(context);
                Workbook workbook = workbookapp.GetType().GetProperty("CurrentWorkbook").GetValue(workbookapp) as Workbook;
    
                workbook.SaveAs(Filename: FileName.Get(context), FileFormat: XlFileFormat.xlOpenXMLWorkbook, CreateBackup: false);
            }
        }
    }
    
    

    워크북에서 애플리케이션 얻기



    워크북에 대한 공식 문서를 검토합니다.
    htps : // / cs. 미 c 로소 ft. 코 m/쟈-jp/오후우세/v바/아피/에 x세 l. rk 보오 k

    그러면 속성에 응용 프로그램이 있었으므로이 속성에서 응용 프로그램을 검색 할 수 있습니다.
    htps : // / cs. 미 c 로소 ft. 코 m/쟈-jp/오후우세/v바/아피/에 x세 l. rk 보오 k. 아 ぃ 카치 온


    구현


    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;
            }
        }
    }
    
    

    실행 확인



    Nuget Package Explorer에서 만든 라이브러리를 UiPath Studio에서 설치한 후 즉시 사용해 봅니다.
    c:\tmp\Sample2.xlsx로 이름을 지정하고 저장합니다.
    ※ 보존처는 절대 패스로 지정해 주십시오.


    좋은 웹페이지 즐겨찾기