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
[15238] [질문]나이스그리드에서 엑셀로 전환할때 숫자값..
김준영 [] 2434 읽음    2014-07-15 17:24
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 [질문]나이스그리드에서 엑셀로 전환할때 숫자값.. 김준영 2434 2014/07/15
15239     Re:[질문]나이스그리드에서 엑셀로 전환할때 숫자값.. 방코 3129 2014/07/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.