Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[15239] Re:[질문]나이스그리드에서 엑셀로 전환할때 숫자값..
방코 [bangco] 3127 읽음    2014-07-15 18:36
엑셀에서의 표현방법 차이같은데 엑셀에서 셀서식을 "일반"에서 "숫자"로 변경하면 되지않을까요?

김준영 님이 쓰신 글 :
: Delphi 에서 바코드 숫자를 DB에서 조회해서 나이스그리드로 불러옵니다..
:
: 거기서 엑셀로 내려받기할때 나이스그리드의 Cells[1, 1] 의 값을 Char 형식의 변수에 넣고
:
: 가져가겠금 되있는데 엑셀파일에서 보면 880917E+12 이런식으로 긴숫자 표현이 되더라구요..
:
: 이걸 정상적인 13자리 숫자로 '8809174412341' 처럼 보여지겠금 하는 방법이 있나요?

: 오늘 하루종일 이것만 쳐다보고 있네요..ㅠ
:
:
:
: 아래는 어디선가 퍼온걸로 쓰고있는 프로시져 입니다..
:
: procedure TUNI350F.sbtn_f9Click(Sender: TObject);
: var
:   BackupName: string; // 백업 이름
:   FH,j2,k : integer; // 파일 핸들러와 임시 변수
:   Buffer1 : array[0..1024] of char; // 자료를 읽어둘 변수
:   linef : char; // 라인 넘기기
:   tabk : char; // 탭 넘기기
:   Buffers : AnsiString; // 자료를 읽어둘 변수
: begin
:   MGMT_NO := FormatDateTime('YYYYMMDDHHMMSS', Now);
:   MGMT_NO := MGMT_NO + OWN + Copy(FNM,4,3);
:   SaveDialog1.Filter := 'Excel files (*.xls)|*.xls';
:   SaveDialog1.DefaultExt := '.xls';
:   SaveDialog1.FileName := 'UNIQ_바코드사용내역_' + MGMT_NO;
:
:   if SaveDialog1.Execute = False then
:     Exit;
:
:   if FileExists(SaveDialog1.FileName) then
:   begin
:     if MessageDlg(SaveDialog1.FileName + ' 이(가) 이미 있습니다' + #13 +
: '바꾸시겠습니까?', mtInformation, [mbYes,mbNo], 0) = mrYes then
:     begin
:       BackupName := ChangeFileExt(SaveDialog1.FileName, '.BAK');
:       RenameFile(SaveDialog1.FileName, BackupName);
:     end;
:   end;
:     FH := FileCreate(SaveDialog1.FileName);
:     linef := Chr(10);
:     tabk  := #9;
:     // TiTle
:     Buffer1 := '';
:     Buffers := '';
:     // 첫행에 내용 삽입
:     for k := 0 to 10 do
:     begin
:       Buffer1 := '';
:       Buffers := TRIM(ng_bill.Columns[k].Title);
:       Move(Buffers[1],Buffer1[0],Length(Buffers));
:       FileWrite(FH,Buffer1,Length(Buffers));
:       FileWrite(FH,tabk,1);
:     end;
:       FileWrite(FH,linef,1);   //  <- 엑셀에서 첫행 삽입
:
:     // query to file
:     for j2 := 0 to ng_bill.RowCount -1 do
:     begin
:       for k := 0 to 10 do
:       begin
:         Buffer1 := '';
:         Buffers := TRIM(ng_bill.Cells[k,j2]);
:         if Buffers = '' then
:           Buffers := ' ';
:         Move(Buffers[1],Buffer1[0],Length(Buffers));
:         FileWrite(FH,Buffer1,Length(Buffers));   <-- 이 부분에서 값을 넘기는거 같은데..
: FileWrite(FH,tabk,1);                                            메모리관련 함수는 잘 모르겠어요..ㅠ
:       end;
:       FileWrite(FH,linef,1);
:     end;
:   FileClose(FH);
:   showmessage('저장되었습니다.');
: end;
:

+ -

관련 글 리스트
15238 [질문]나이스그리드에서 엑셀로 전환할때 숫자값.. 김준영 2432 2014/07/15
15239     Re:[질문]나이스그리드에서 엑셀로 전환할때 숫자값.. 방코 3127 2014/07/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.