반응형
//왼쪽에 붙은 0 제거하기
function _setLeftZeroRemove(vValue) {
	//영하 온도 입력 시
	var isMinus = vValue.indexOf("-");

	var vVal = vValue.replace(/-/g,"");

	if (vVal.length > 1) {
		vVal = vVal.replace(/(^0+)/, "");        

		if (vVal.length == 0) {
			vVal = 0;
		}
	}

	//영하 마이너스 찍었는지 확인
	if (isMinus > -1) {
		if (vVal != 0) {
			vVal = "-" + vVal;
		}
	}

	return vVal;
}
반응형

2024. 05. 20

- 날짜의 간격을 음수로 받아야 되는 경우가 있어서 해당 부분 주석으로 설명 넣어두었음.

- Math.abs (절대값)을 제거하면 음수로 받을 수 있음.

//날짜 차이 , 간격 일수 함수 (yyyymmdd , yyyy-mm-dd)
function _fnCompareDay(vValue1, vValue2) {
	var rxDatePattern = /^(\d{4})(\d{1,2})(\d{1,2})$/; //Declare Regex    
	
	if (vValue1.length > 7 && vValue2.length > 7) {
	
		//- replaceAll
		var dtArray1 = vValue1.replace(/-/gi, "").match(rxDatePattern); //기준 날짜
		var dtArray2 = vValue2.replace(/-/gi, "").match(rxDatePattern); //비교 날짜
	
		//0 => 현재 날짜 / 1 => yyyy / 2 => mm / 3 => dd
		var vSDate = new Date(parseInt(dtArray1[1]), parseInt(dtArray1[2]) + 1, parseInt(dtArray1[3]));
		var vEDate = new Date(parseInt(dtArray2[1]), parseInt(dtArray2[2]) + 1, parseInt(dtArray2[3]));
	
    		//추가 : 만약 날짜 차이를 음수로 받고 싶다면 Math.abs를 제거
		var vGapDay = Math.abs(vEDate.getTime() - vSDate.getTime());
		vGapDay = Math.ceil(vGapDay / (1000 * 3600 * 24));
	
		return vGapDay;
	} else {
		return "N";
	}
}
반응형

ExcelPackage를 사용하여 Dataset로 Excel 만들기.

전체 셀의 옵션 선택도 가능하고 맨 위의 header 부분도 배경화면 및 폰트 적용 가능합니다.

 

using (ExcelPackage pck = new ExcelPackage())
{
	ExcelWorksheet workSheet = pck.Workbook.Worksheets.Add(ds.Tables["Table"].TableName);

	Color DeepBlueHexCode = ColorTranslator.FromHtml("#c6efce");

	//가로 길이
	workSheet.Column(1).Width = 30;
	workSheet.Column(2).Width = 13;
	workSheet.Column(3).Width = 20;
	workSheet.Column(4).Width = 20;
	workSheet.Column(5).Width = 15;
	workSheet.Column(6).Width = 15;
	workSheet.Column(7).Width = 125;
	workSheet.Column(8).Width = 8;

	//세로 정렬
	workSheet.Column(1).Style.VerticalAlignment = ExcelVerticalAlignment.Center;
	workSheet.Column(2).Style.VerticalAlignment = ExcelVerticalAlignment.Center;
	workSheet.Column(3).Style.VerticalAlignment = ExcelVerticalAlignment.Center;
	workSheet.Column(4).Style.VerticalAlignment = ExcelVerticalAlignment.Center;
	workSheet.Column(5).Style.VerticalAlignment = ExcelVerticalAlignment.Center;
	workSheet.Column(6).Style.VerticalAlignment = ExcelVerticalAlignment.Center;
	workSheet.Column(7).Style.VerticalAlignment = ExcelVerticalAlignment.Center;
	workSheet.Column(8).Style.VerticalAlignment = ExcelVerticalAlignment.Center;

	//가로 정렬
	workSheet.Column(1).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
	workSheet.Column(2).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
	workSheet.Column(3).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
	workSheet.Column(4).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
	workSheet.Column(5).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
	workSheet.Column(6).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
	workSheet.Column(7).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
	workSheet.Column(8).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;

	//폰트 설정
	workSheet.Column(1).Style.Font.SetFromFont(new System.Drawing.Font("나눔고딕", 10));
	workSheet.Column(2).Style.Font.SetFromFont(new System.Drawing.Font("나눔고딕", 10));
	workSheet.Column(3).Style.Font.SetFromFont(new System.Drawing.Font("나눔고딕", 10));
	workSheet.Column(4).Style.Font.SetFromFont(new System.Drawing.Font("나눔고딕", 10));
	workSheet.Column(5).Style.Font.SetFromFont(new System.Drawing.Font("나눔고딕", 10));
	workSheet.Column(6).Style.Font.SetFromFont(new System.Drawing.Font("나눔고딕", 10));
	workSheet.Column(7).Style.Font.SetFromFont(new System.Drawing.Font("나눔고딕", 10));
	workSheet.Column(8).Style.Font.SetFromFont(new System.Drawing.Font("나눔고딕", 10));

	//Header 부분 스타일 적용
	workSheet.Cells["A1:H1"].Style.Font.Bold = true;
	workSheet.Cells["A1:H1"].Style.Fill.PatternType = ExcelFillStyle.Solid;
	workSheet.Cells["A1:H1"].Style.Fill.BackgroundColor.SetColor(DeepBlueHexCode);

	////테두리 border 적용
	var nBorderRowCount = ds.Tables["Table"].Rows.Count + 1;
	var nRowCount = ds.Tables["Table"].Rows.Count;

	string modelRange = "A1:H" + nBorderRowCount.ToString();

	workSheet.Cells[modelRange].Style.Border.Top.Style = ExcelBorderStyle.Thin;
	workSheet.Cells[modelRange].Style.Border.Left.Style = ExcelBorderStyle.Thin;
	workSheet.Cells[modelRange].Style.Border.Right.Style = ExcelBorderStyle.Thin;
	workSheet.Cells[modelRange].Style.Border.Bottom.Style = ExcelBorderStyle.Thin;

	//세팅 완료된 데이터 뿌려주기
	workSheet.Cells["A1"].LoadFromDataTable(ds.Tables["Table"], true);

	//엑셀 파일 저장
	pck.SaveAs(new FileInfo(strRealPath));
}

 

궁굼하신건 댓글로 남겨주세요~

반응형
function _setLeftZeroRemove(vValue) {
	var vVal = vValue;

	if (vVal.length > 1) {
		vVal = vVal.replace(/(^0+)/, "");

		if (vVal.length == 0) {
			vVal = 0;
		}
	} 

	return vVal;
}

2자리수 이상 일 경우 앞에 0으로 시작하면 없애주는 로직

 

 

반응형

똑같은 Name으로 2개의 Select가 있을 경우 Change 함수를 이용하여 한번에 2개 데이터를 바꾸고, Selected 값도 바꾸는 로직

$(document).on("change", "select[name='select_SolutionQ_Email']", function () {
	//pc와 mo의 데이터 동기화
	$("input[name='SolutionQ_Email2']").eq(0).val($(this).find('option:selected').val()); //pc
	$("input[name='SolutionQ_Email2']").eq(1).val($(this).find('option:selected').val()); //mo

	//선택한 값의 index 번호를 가져와서 동일한 name의 select 태그의 index의 option으로 selected 시켜주는 로직 입니다.
	$("select[name='select_SolutionQ_Email']").eq(0).find("option").eq($(this).find('option:selected').index()).attr('selected', 'selected');
	$("select[name='select_SolutionQ_Email']").eq(1).find("option").eq($(this).find('option:selected').index()).attr('selected', 'selected');
});

 

 

 

 

반응형

resize : none을 사용하면 크기 영역이 나타지 않게 할 수 있습니다. 

 

반응형

IE에서는 Window.open의 fullscreen 옵션이 되지만 크롬에서는 잘 되지 않는 경우가 많다.

 

아래와 같이 사용하면 새창의 전체화면으로 열수 있다.

window.open('URL','title','width=' + screen.width + ','height=' + screen.height + ',fullscreen=yes');



 

 

반응형
function _getParameter(param) 
{
	var returnValue = '';
	// 파라미터 파싱
	var url = location.href;
	var params = (url.slice(url.indexOf('?') + 1, url.length)).split('&');
	for (var i = 0; i < params.length; i++) 
	{
		var varName = params[i].split('=')[0];
		//파라미터 값이 같으면 해당 값을 리턴한다
		if (varName.toUpperCase() == param.toUpperCase()) 
		{
			returnValue = _fnToNull(params[i].split('=')[1]);
			if (returnValue == "") 
			{
				returnValue = "none"
			}
			return decodeURIComponent(returnValue);
		}
	}
	return returnValue;
}

+ Recent posts