UiPath Excel to HTML

RPA 2024. 11. 27. 15:40
반응형

UiPath 를 개발하다 보면 은근히 HTML 작성해야하는 경우가 허다하다.

특히 Image도 그렇고 테이블도 마찬가지다.

보통 그렇게 HTML로 변경한 뒤 Outlook이나 메일 시스템에 HTML로 밀어넣는 과제가 많았다.

 

그.리.하.여. 액셀을 HTML로 바꿔주는 컨버터를 만들어 보았다.

짬내서 조금씩 만들었는데, 어느새 얼추 쓸만한 정도로 완성된 것 같아 기쁘다.

 

Share/자료 Data/Excel To Html Charp at main · heaeny/Share

 

Share/자료 Data/Excel To Html Charp at main · heaeny/Share

Contribute to heaeny/Share development by creating an account on GitHub.

github.com

Share/자료 Data/Excel To HTML VB at main · heaeny/Share

 

Share/자료 Data/Excel To HTML VB at main · heaeny/Share

Contribute to heaeny/Share development by creating an account on GitHub.

github.com

 

조금 킹받지만 어쨌든 C#, VB 모두 만들었다.

라이브러리로도 가능했지만, 안에 알아서 수정하자는 뜻에서 걍 오픈 소스로 다 열었다.

 

산출물은 아래와 같다.

액셀 원본
변환된 테이블

최대한 많은 케이스를 넣어 봤다. (글자체, 기울림, 굵기 등등...)

 

대충 보면 알겠지만 색이 미묘하게 다른 글자나 테두리가 보일 것이다.

이 프로젝트의 가장 큰 문제는 바로 색깔인데, 다른 이유가 테마 컬러를 가져오다가 값이 달라진 것이다...

값이 달라지면 수정해 놓긴 할테지만, 고정 색상값이나 여타 다른 속성값은 그대로 산출 중이니 공유해본다.

Excel To Datatable.zip
0.32MB

 

 

---- 11월 29일 테마 색상 미일치 부분 조사 ----

테마 색상 미일치 이슈는 생각보다 간단했다. 그냥 내가 선택한 ClosedXML에서 지원을 하지 않는단다......

이쯤에서 복기해야할 이슈는 바로 Interop 함수이다.

테마 — ClosedXML 0.102.0 documentation

테마 컬러 고정
액셀 - 테마컬러 설정 부분 (2007-2010으로 변경 시 HTML로 산출된 색상과 정확히 일치한 색상이 된다.)

 

Office 상호 운용성 개체에 액세스하는 방법 - C# | Microsoft Learn

 

Office 상호 운용성 개체에 액세스하는 방법 - C#

Office API 개체에 간편하게 액세스할 수 있는 C# 기능에 대해 알아봅니다. 새 기능을 사용하여 Excel 워크시트를 만들고 표시하는 코드를 작성합니다.

learn.microsoft.com

위 페이지에서 Interop.Excel 부분을 찾아볼 수 있는데, 간단히 위와 같은 로직을 짤 수 있는 또다른 방법일 수도 있다. 단, 이는 개발하지 않았는데, 우선 위 함수들은 마소 라이센스가 필요하다. 즉, 내부에서 엑셀을 열어 작업하는 듯 하다. 라이센스가 없는 환경에서도 작동하길 원해서 ClosedXML을 선택했는데, 끝에서 뒤통수를... 살짝 정도 친 거 같다.

 

솔직히, 이만하면 꽤 많은 속성을 복붙한 효과라 나름 만족한다.

 

원하는 효과와 한계성을 모두 살펴보았으므로 해당 이슈는 이제 모두 정리할 수 있겠다.

 

 

 

반응형

'RPA' 카테고리의 다른 글

UiPath 0xc0000005 오류  (0) 2024.11.25
Content Generation - 생성형 인공지능  (0) 2024.09.04
UiPath Image 처리  (0) 2024.08.23
Activate, Set Focus - (유용했던) Activity  (0) 2024.08.23
Xml, Json Deserialize - (유용한) Activity  (0) 2024.08.22
Posted by heaeny
,