절름발이 프로그래머/Delphi

[펌글] StringGrid 를 Excel 형식으로 변환 저장하기

훅크선장 2009. 7. 10. 10:07
http://topopen.egloos.com/3211897 에서 가져왔습니다.

StringGrid를 아직 안 써봤지만, 앞으로 쓸 일이 있을 것 같습니다.

[Delphi] 델파이 excel export 소스

아래는 델마당 소스 발췌한 내용입니다.
---------------------------------------------------------------------
스트링그리드이 내용을 excel로 저장하는 델파이 소스입니다..

그런데, 제가 델은 잘 몰라서....변환을 할 수가 없군요..

소스는 한델에서 얻었구요... 빌더로 변환해 주세요..^^

소스는 아래와 같습니다..

1. StringGrid 예제
Uses절 ComObj 포함..

procedure TshGridX.run_excel;
var
  XL, XArr: Variant;
  i, j: Integer;
begin
  //데이타 처리변수
  XArr := VarArrayCreate([1, StringGrid1.ColCount], VarVariant);

  try
  //엑셀을 실행
    XL := CreateOLEObject('Excel.Application');
  except
    MessageDlg('Excel이 설치되어 있지 않습니다.', MtWarning, [mbok], 0);
    Exit;
  end;

  XL.WorkBooks.Add; //새로운 페이지 생성
  XL.Visible := True;
  
  for i := 0 to StringGrid1.RowCount - 1 do begin
    for j := 0 to StringGrid1.ColCount - 1 do begin
      XArr[j+1] := StringGrid1.Cells[j,i];
    end;
    //엑셀에 값을 넣는다.
    XL.Range['A' + IntToStr(i+1), CHR(64 + StringGrid1.ColCount) + IntToStr(i+1)].Value := XArr;
  end;

  //셀 크기 조정
  XL.Range['A1', CHR(64 + StringGrid1.ColCount) + IntToStr(i+1)].Select;
  XL.Selection.Columns.AutoFit;
  XL.Range['A1', 'A1'].Select;
end;