![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bTJnw9/btsytu8ioGK/Gz8H4oHqlSWu5qisiKfANK/img.png)
👉오늘의 목적 xlsx 파일을 넣고 해당 엑셀 데이터를 가져오자 😙 ExcelDatareader DLL 다운로드하기 [C# :: 엑셀 데이터 불러오기 , 가져오기 (Read data from excel file) 예전에 SheetJS를 이용해서 엑셀데이터를 가져오고 엑셀을 시트별로 만드는 것을 했었는데 javascript :: SheetJS 테이블들 엑셀 시트 별로 다운로드하기 이번에 엑셀다운로드를 구현하는 일을 맡게 되 w94dev.tistory.com](https://w94dev.tistory.com/53) ExcelDatareader DLL을 통해 엑셀 데이터를 가져오는 방법을 예전에 한 번 작성한 적이 있다. 이 포스팅대로 Nuget 패키지관리에서 ExcelDatareader DLL 두 가지를 모..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/n1c2C/btsys60JKtX/OoJLI1MMmcharrkvCuj4vK/img.png)
👉오늘의 목적 Button A와 Button B에 따라 기능을 다르게 실행하기 위해 클릭된 버튼의 ID를 가져오는 것을 해보자 😗 aspx페이지 id가 fUp인 input 태그 안에 파일을 첨부 한 후 BtnA 또는 BtnB가 클릭되었는지 알기 위해서 그 밑에 ASP Button 두 개를 추가로 만들어 준다. 버튼을 클릭하면 ChkWithDB 메서드로 가도록 해두었다. 😗 cs페이지 using System.Web.UI.WebControls; protected void ChkWithDB (object sender, EventArgs e) { Button targetBtn = (Button)sender; switch (targetBtn.ID) { case “BtnA” : //BtnA 기능 실행 break; ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/pxPgn/btsylCyMscJ/kyNyKJZwneKwZpKlKPkfJK/img.png)
🤔 이번에 할 것은 엑셀과 데이터베이스 데이터들을 비교한 후 다른 데이터를 엑셀로 다운로드하기 매우 장황해보이지만 4단계에 걸쳐서 글을 작성할 예정이다. 사용언어는 C#, 프레임워크는 ASP.NET, 데이터베이스는 MSSQL 👉 구현 과정 엑셀 파일을 추가한 후 버튼에 따라 어떤 데이터베이스를 가져올지 가르기 위해 버튼 id를 가져온다 엑셀데이터를 가져온다 데이터베이스에서 데이터를 가져온 후 엑셀과 비교를 진행한다 차이가 나는 데이터를 엑셀로 다운로드 한다 완성! 파일선택을 클릭 후 엑셀파일을 넣은 다음 버튼에 따라 기능이 나뉘어서 1편을 버튼 아이디를 가져오는 걸로 썼는데 엑셀이랑 데이터베이스 비교만 원한다면 2편부터 봐도 된다. 투비컨티뉴드😜 🐟 관련글 0. C# :: 엑셀 데이터와 데이터 베이스 데..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/mnIo8/btsxSziPp2B/WqJyvYpHwbaK4axPeiPkz0/img.png)
업무중에 한 분 께서 Equals함수를 사용할 때 “문자열”.Equals(변수) 의 형태로 사용하는 것을 보고 이유를 물어봤다. 그렇게 알게 되어서 정리하는 C# 의 String.Equals 메서드 사용방법 ❓"개발".Equals(strDev)와 strDev.Equals("개발")의 차이는 무엇인가? 👉 "개발".Equals(strDev)는 문자열인 “개발”이 strDev의 객체를 비교한다. 만약 다른 형식의 객체이거나, null인경우 예외로 빠지는것이 아니라 false를 반환하여 조건문을 끝낸다 👉 strDev.Equals("개발")는 strDev가 문자열인 “개발’과 비교를한다. 만약 strDev가 다른형식이거나 null이면 예외가 throw 된다. ❗따라서 null비교를 하거나 다른 예외처리를 통해..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b4o3ZU/btsxsp9cQn6/uFFoRIHAFgLrK9HbQND9Z1/img.png)
로그인 시 사용자들은 대부분 자기가 비밀번호를 잘못설정해놨다고 생각하지 이게 대소문자 때문이라고는 생각하지 못하는 경우가 많다. 비밀번호 오류나면 관리자도 귀찮고 사용자도 귀찮으니 로그인 페이지 구현시 해두면 좋은 'Caps Lock' 여부 알려주는 기능 구현해보기 ! 👉 javascript 기능 중 getModifierState 를 이용해봅시다 ! Caps Lock이 켜져있습니다. 해당 소스를 이용해서 코드를 만든 후 css 조금 변경해주면 아래와 같이 caps Lock 버튼이 눌려져있음을 알려주는 창이 뜬다capsLock 키를 구분해내기 위해 getModifierState 함수를 사용했는데 Alt, NumLock 등에서도 사용할 수 있다. 더 자세한 내용은 getModifierState문서 에서 확인..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/JwXtl/btrSDE4ub9b/d3kWrljYUv4h9xJMhaKlI1/img.jpg)
이 책이 2016년에 나왔다는 점이 가장 놀랍다. 후반에 가면 '미래 읽기는 IT전문가의 영원한 화두이며 특권이다'라고 한다. 그와 관련하여 몇가지 예시가 나오는데 클라우드와 자동차의 소프트웨어가 중요해질 것이라는 저자의 전망이 있었다. 클라우드가 2016년 부터 슬금슬금 시작하였지만 우리나라도 최근 몇년에 들어서야 클라우드열풍이 불기 시작했지 이 당시에서부터 이렇게 내다보았다는게 흥미로웠다. 트렌드를 읽고 미래를 예측하는 것을 최근 몇 년 주식을 시작 하며 관심을 가지게 되었는데 이런 통찰력을 내 커리어에도 써먹어 봐야겠구나 생각했다. IT 전문가로 사는 법이라는 책을 개발자라는 직업으로 회사에 입사했을 때 읽어봤던 책인데 그 당시에는 잘 이해도 안 가고 IT가 이런 세계구나~ 정도였는데 , 몇년 일하..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bKMh1G/btrHbUY0pe9/KDKpRbuuDYFjNNKySYeNR1/img.png)
예전에 SheetJS를 이용해서 엑셀데이터를 가져오고 엑셀을 시트별로 만드는 것을 했었는데 javascript :: SheetJS 테이블들 엑셀 시트 별로 다운로드하기 이번에 엑셀다운로드를 구현하는 일을 맡게 되었다. 이전까지는 엑셀 다운로드를 할 때 단일 시트형식이었기 때문에 큰 어려움은 없었다. 하지만 이번에는 테이블에 따라 시트를 나눠달라는 요 w94dev.tistory.com C# DLL을 다운받아 직접 엑셀데이터를 가져와보자 첫 번째 / DLL 다운받기 🔥 엑셀 데이터를 가져오기 위해서는 먼저 DLL을 다운받아야한다 솔루션탐색기>마우스 오른쪽 버튼 클릭> NuGet패키지관리 클릭 ExcelDatareader와 ExcelDataReader.DataSet을 다운로드 받는다 둘 다 받아야 한다! 두 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/2lZBC/btrvS8mhBc8/YrEIsC76fT8HGXOECekhs1/img.png)
😃 || 정리 문제에서 '첫 단어는 Enter, Leave, Change 중 하나이다.' 첫 단어를 조건으로 구분하기로 했다. 아이디와 닉네임 , key 값과 value 이렇게 떠올라서 Map을 쓰기로 했다. 그리고 배열에 저장할 값들을 일단 ArrayList에 저장한 후 ArrayList에 저장된 id 값을 닉네임으로 Replace하려고 했다. 👈 여기서부터 문제 발생 public static void main(String[] args) { HashMap resultMap = new HashMap(); ArrayList resultArr = new ArrayList(); String[] arrRecord ; for(int i=0; i
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/EaXDy/btrvPfZ4Htu/IgTHwXXT84ie23BLQYfm4K/img.png)
비밀번호에 숫자, 영어 , 특수문자가 들어가야 하는 것들은 정규식으로 구현이 가능했지만 같은 문자가 3번 들어가는 것을 체크한다던가 연속된 키보드 문자열 체크하기엔 한계가 있어서 따로 코드로 만들었다. 첫 번째 / 같은 문자가 3번 들어가는 것 체크 🔥 여기서는 aaabb처럼 같은 문자가 연속으로 들어가는 것 뿐만 아니라 ababanav 처럼 a같은 문자가 3번 들어가는 것을 찾고 싶었다 protected bool checkPassword(string strPass) { bool retVal = false; char[] tempArr = strPass.ToCharArray(); System.Array.Sort(tempArr); int passCnt = 0; for (int i = 0; i < tempAr..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Rj7ek/btrvJ90J3Gk/W0Qu6K2KIoPF9JPiJUFSv1/img.png)
기존에 GET방식으로 구현했던 페이지가 있었는데 URL이 노출되면 사용자가 값을 임의로 넣어서 다른 데이터들이 노출 될 것 같아 POST로 변경해달라는 요청이 있었다. ❔ window.open.. 그리고 POST..? 어떻게 구현하지? 👉 form 태그를 쓰면 됩니다! 이렇게 하면 form 태그안에 들어있는 값들을 post로 해당 url에 넘겨주게 된다. ❔ 이렇게 변경했더니 URL이 두 번 호출 되는 오류 발생 👉 window.open("", "openForm", option); 로 변경 url이 들어가던 부분에 빈값을 넣으면 url이 두 번 호출되는 일 없이 잘 호출된다~!