델파이 2005 퀀텀그리드 6
퀀텀그리드에서 엑셀로 다운로드 할 경때
컬럼속성을 CurrencyEdit 에 DisplayFormat 을 #,0;-#,0 으로 주었는데요
숫자의 끝에 전부 .00이 붙어서 나옵니다.
해결방안을 아시는 고수님들의 도움을 부탁드립니다.
참고로 델파이2005 퀀텀6을 사용중입니다.
답변 감사합니다.
알려주신대로 CalcEdit으로 바꾸고 UseThousandSeperator를 True 로 사용했더니
화면상에서는 CurrencyEdit 과 동일하게 Display 되지만
엑셀로 전환할 경우 천단위 콤마가 출력되지 않습니다.
천단위 콤마가 같이 출력되는 방법은 없을까요
엑셀로 전환할때 파라메터를 설정할 수있는 것으로 기억 합니다.
예를 들기에는 머하지만 주로 사용하는 방법은
ExportGridToXLSX(FileName, AGrid, True, True, False);
중에서 맨 뒤 True부분이 AUseNativeFormat 부분입니다. T/F 에 따라 Export포멧이 달라지더군요..
아주 깔끔한 상태는 아닌 방법이지만요...엑셀에서는 텍스트로 지정된 숫자 이러한 식으로 나올겁니다.
답변 감사합니다.
일단 그리드 컬럼 프로퍼티는 동일하게 CurrencyEdit , DisplayFormat 은 ,0;-,0 을 주고
처음에
ExportGridToExcel(FileName, AGrid, True, True, False);
방식으로 하였더니 숫자의 셀서식이 텍스트 형식으로 엑셀전환 되었습니다.
두번째로
ExportGridToExcel(FileName, AGrid, True, True, True);
방식으로 하였더니 숫자의 셀서식이 숫자형으로 엑셀전환은 되지만 숫자의 맨 끝에
.00 이 붙어서 나옵니다.
원하는 것은 그리드의 숫자 컬럼이 숫자형 셀서식으로 엑셀전환이 되는 것이며
끝에 .00이 붙어나오는 것을 해결하는 것입니다.
퀀텀그리드 구매처에 문의한 결과
미국에서 CurrencyEdit은 소수점 두자리 표기가 기본이라 원화처럼 소수점 없이 다운로드는 불가능하다고
합니다.
그래서 편법으로 해결하였습니다.
1. ExportGridToExcel(FileName, AGrid, True, True, True); 을 실행하여 엑셀 다운로드
2. OLE 방식으로 재편집
- 눈에 안보이게 해당 파일 Open
XL := CreateOLEObject('Excel.Application');
XL.DisplayAlerts := False; //. 경고창 보이기
XL.workbooks.Open(FileName+'.xls'); //. 화일 열기
( 참고로 var XL : Variant; 선언)
- 원하는 셀(열)의 셀서식을 숫자형으로 Format을 #,##0_- 으로 변경
XL.Range['E'E'].Select;
XL.Selection.NumberFormatLocal := '#,##0_-';
- 재저장 후 파일 닫기
XL.ActiveWorkBook.SaveAs(FileName+'.xls');
If not VarIsEmpty(XL) Then XL.Quit;
3.ShellExecute(Handle, 'open', PChar(FileName+'.xls'), nil, nil, SW_NORMAL); 을 실행하여 파일 열기
저같은 경우 Column Properties를 CalcEdit로 주로 하는데요.. Display Format 아무것도 안주고 그냥 프로퍼티 하단에 있는 UseThousandSeperater( 스펠링이 맞나...^^;;;) 체크 해서 사용합니다.