여러 엑셀 파일에 있는 시트를 모아서 처리하고 싶은 경우가 있습니다. 이때 사용할 수 있는 VBA 매크로 코드예요. 각 파일의 시트가 복사되어, 현재 열려 있는 엑셀 파일에 추가할 수 있어요. 코드는 다음과 같습니다. 엑셀 파일 합치기 예시 코드 Sub MergeExcelFiles() Dim fnameList, fnameCurFile As Vari…
C# 프로젝트에서 종속성을 해결하는 인터페이스 활용법: MainForm과 SubForm 간의 상호작용 문제 해결해 보도록 합시다. 😊 물론 Action과 같은 델리게이트를 활용할 수도 있는데요, 이번 예제에서는 인터페이스로 해결하는 방법에 대해 안내해드릴게요. 프로젝트 종속성 인터페이스로 해결하기 C# 윈도우 폼 애플리케이션 개발 시, MainForm과…
자바스크립트에서 \x62\x6F\x64\x79 는 ASCII 코드에 해당하는 16진수 값으로 해석되어 문자로 변환합니다. 😊 이 코드는 각각의 16진수 값이 해당하는 문자로 변환되는 방식인데요, 구체적으로 살펴보면 다음과 같습니다. 16진수 변환 \x62 는 ASCII 코드 98에 해당하며, 이는 문자 'b' 로 변환됩니다. \x6F 는 …
웹 개발이나 데이터 처리 중, HTML 파일이나 텍스트에서 특정 태그를 제거하고 그 안에 포함된 내용만을 추출해야 할 때가 종종 있죠. 이를 수동으로 처리하려면 시간이 많이 걸리기에, 오늘은 특정 태그를 찾아 제거하고, 그 안의 텍스트만 남겨 클립보드에 복사하는 C# 코드를 설명해드릴게요. 이번 코드에서는 기본적으로 파일에서 특정 태그를 제거한 후, 해당…
엑셀 데이터를 작업할 때 가장 불편했던 점 중 하나는 날짜 형식이 자동으로 변경되는 상황이었습니다. 엑셀 시트에 날짜를 YYYY-MM-DD 형식으로 깔끔하게 입력해두었는데, 데이터를 가져올 때마다 자동으로 'YYYY-MM-DD 오전 12:00:00'와 같이 시간까지 붙어 나오는 겁니다. 단순히 날짜 정보만 필요했는데, 불필요하게 시간 정보까…
Regex를 사용하여 html 태그를 정리하려고 하는데요, 예시는 span 태그를 기준으로 안내해 드리려고 해요. 일부 span 태그가 정리가 이상하게 되어 확인을 해보았더니, replace 코드에서 <span><span></span></span> 과 같은 중첩된 태그의 처리가 제대로 되지 않는 부분을 발견하였…
C#에서 delegate 를 사용하는 두 가지 표현 방식이 있습니다. 기본적으로 동일한 기능을 수행하지만, 코드 가독성과 표현 방식에서 차이가 있어요. 최근에는 람다 표현식을 통해 더 간결하고 현대적인 방식으로 많이 사용해요. 기본 delegate 사용 line = Regex.Replace(line, $@"(?:<{_tag}.*?>)…
C#에서 클래스의 특정 필드의 이름을 가져오려면 Type 객체의 GetFields 속성(리플렉션)을 사용할 수 있습니다. 여러 필드를 추가하고 다양한 경우를 다룬 예시로 살펴보도록 할게요. 필드 이름 가져오기 예시 코드 using System; using System.Reflection; public class MyClass { // 공개 필…
C#에서 두 개의 텍스트 파일을 교차해서 읽어와 처리해야 하는 경우가 있을 때가 있죠. 예를 들어, 두 파일의 내용을 순차적으로 처리하면서 각 줄을 교차로 가져와 결과로 활용하고 싶을 때가 있습니다. 이럴 때 유용한 방법을 소개하겠습니다. 예시 코드 private void CrossAandB() { try { string r…
Visual Studio에서 예외 설정을 통해 디버깅 환경을 더 세밀하게 조정할 수 있습니다. 예외 설정을 이용하면 코드 실행 중 특정 예외가 발생할 때마다 중단 여부를 설정할 수 있어요. 단계별로 설명드리면, 아래와 같은 방법을 따라 하시면 됩니다. 디버그 탭 클릭: 먼저 Visual Studio 상단 메뉴에서 '디버그' 탭을 누릅니다. …
Oracle에서 대량 데이터를 복사할 때 OracleBulkCopy 를 사용할 수 있는데요, 결과를 보니 30,000개만 인서트가 된 것을 확인하였습니다. 그리하여 BatchSize 를 60,000으로 설정하여 한 번에 많은 양의 데이터를 처리할 수 있도록 추가해 보았어요. 예시 코드 using (OracleBulkCopy bulkCopy = new O…
Oracle.DataAccess.Client를 사용할 때, 인서트가 마지막 하나의 행만 처리되는 문제가 발생하였습니다. 도대체 무엇이 문제인지, 하나하나 다시 살펴보았는데요, 특징이 항상 가장 마지막 로우만 인서트 된다는 것에 주목을 해보았더니 의외로 황당한 곳에 답이 있었어요. 내부적으로 삭제 구문이 반복 실행되면서 발생하는 경우였답니다. 최초의 의도는…
C#에서 콤보박스(ComboBox)에 값을 설정하는 방법에 대해 알아보겠습니다. 😊 특히, 오라클 데이터베이스와 연결하여 콤보박스에 데이터를 바인딩하는 방법도 함께 다뤄보겠습니다. 이 글에서는 기본적인 콤보박스 설정부터, 실제 데이터베이스에서 값을 불러와 바인딩하는 과정까지 소개할 예정입니다~ C# 콤보박스(ComboBox)에 값 넣는 방법 C#에서 콤…
C#에서 Call Stack(호출 스택)을 확인하는 방법은 몇 가지가 있습니다. 앞서 언급한 두 가지 외에도 추가적인 방법을 소개하겠습니다. System.Diagnostics.StackTrace 이 방법은 StackTrace 객체를 직접 생성하여 호출 스택을 확인할 수 있습니다. System.Diagnostics.StackTrace stackTrace…
DataGridView에서 로우 헤더에 로우 넘버를 추가하는 방법은 RowPostPaint 이벤트를 사용하여 구현할 수 있습니다. 로우 헤더에 넘버 추가 다음 코드에서는 각 행의 번호를 로우 헤더에 출력하는 방식으로 작성한 예시입니다. 코드에서 핵심 포인트들을 하나씩 살펴보겠습니다. private void dataGridView_RowPostPain…
C#에서 Selenium과 Google Translate를 활용하여 간단한 번역기를 구현한 예제 코드를 소개합니다. 이 코드는 텍스트를 구글 번역기로 보내고 결과를 받아와 화면에 출력하는 방식으로 작동합니다. 실제로 웹을 자동으로 탐색하고, 입력된 텍스트를 번역하는 데 유용하게 사용할 예정이랍니다. Selenium을 활용한 구글 번역 자동화 Seleniu…
AsEnumerable 로부터 2개의 행(row)이 있고 각각 컬럼 값이 A와 B일 때, 이를 하나의 문자열로 묶는 방법을 for 문 없이 해결하는 방법으로 LINQ를 사용할 수 있습니다. LINQ 를 사용하면 간결하게 원하는 작업을 수행할 수 있습니다. 예를 들어 DataTable 이 있다고 가정하면, 이를 AsEnumerable 로 변환한 후 Sel…
엑셀을 사용하다 보면, '개발도구' 탭이 필요할 때가 있죠. 특히 매크로나 VBA를 사용하려고 할 때 이 탭이 없으면 조금 당황스러울 수 있습니다. 그런데 기본 설정에서는 이 '개발도구' 탭이 숨겨져 있어서 처음에는 안 보일 수 있어요. 다행히 간단한 설정으로 '개발도구' 탭을 쉽게 활성화할 수 있습니다. 제가 …
다음의 오류가 발생하였는데요, 해결하는 방법은 HTML 편집하기로 이동한 다음, 해당 값을 변경하는 것이랍니다. <meta name="apple-mobile-web-app-capable" content="yes"> is deprecated. Please include <meta name="mo…
구글 블로그에서 글머리 기호 정렬을 조정하는 방법을 공유합니다. 블로그 글을 작성할 때, 리스트의 글머리 기호가 기본적으로 40px 뒤로 밀려 있어 가독성이 떨어질 수 있습니다. 이를 해결하기 위해서는 간단한 CSS 코드 수정을 통해 글머리 기호의 위치를 조정할 수 있습니다. 아래와 같이 CSS 코드를 추가하세요~ .post-body > ul { …