Q&A

  • Excel로 저장시...
data를 읽어서 Excel로 보냈습니다. 그 내용을 자동으로 바로 저장하고 싶어서

아래와 같이 했습니다.



Excel : Variant;

.

.

.

.

.

맨 마지막에...

Excel.SaveToFile('N'+Copy(cDate,3,6)+'.xls');

그런데 이런 Message가 나옵니다.



Method 'SaveToFile' not Supported by automation object... 라구요.

제가 뭔가를 빼고 쓴것 같은데 잘 모르겠습니다.

아시는분 좀 도와주십시요..

2  COMMENTS
  • Profile
    박정현 2001.06.07 19:17
    델파이에서 Excel로 자료를 보낼때, Excel의 Install여부에 관계없이,

    무조건 특정 디렉토리에 .XLS 파일로 Query의 내용을 보낼 수 있습니다.



    방법은 Text파일을 저장할때랑 같구요, 단지 칼럼구분으로 데이터의 사이에 Tab문자를

    추가하면 됩니다.

    단, String으로 보내면 글자가 깨집니다. 반드시, array of char 타입이어야 합니다.



    예제입니다.

    var

    FH, j, k : Integer;

    Buffer1 : array[0..1024] of char;

    linef : char;

    tabk : char;

    Buffers : String;

    len,l : Integer;

    str1 : String;



    begin

    FH := FileCreate('./Test.xls');



    // line end

    linef := Chr(10);

    // tab

    tabk := #9;



    // Title

    Buffer1 := 'Buyer'#9'주문Item수'#9'매출금액'#9'';

    FileWrite(FH, Buffer1, SizeOf(Buffer1));

    FileWrite(FH, linef, 1);



    // QryTable이라는 Query의 내용을 파일로 보내기

    QryTable.First();



    for j := 0 to (QryTable.RecordCount - 1) do

    begin



    for k := 0 to (QryTable.FieldCount - 1) do

    begin

    Buffer1 := '';

    Buffers := QryTable.Fields[k].AsString;

    Move(Buffers[1], Buffer1[0], Length(Buffers));



    FileWrite(FH, Buffer1, SizeOf(Buffer1));

    FileWrite(FH, tabk, 1);

    end;



    FileWrite(FH, linef, 1);



    QryTable.Next;

    end;



    FileClose(FH);



    end;

  • Profile
    역시초보 2001.02.17 04:50
    저도 variant로 객체생성을 이용해 엑셀객체에 접근을 시도했던 적이 있습니다.

    저 역시 같은 에러가 발생했는데

    엑셀의 객체구조를 알고 다시 해보니까 해결되었습니다.

    델초보님같은 경우 다음과 같이 해보세요.. 제가 해보진 않았는데



    'Excel.workbooks.savetofile(....'이런식으로요

    workbook이나, worksheet에 해당 해당메소드가 있다면 될거 같아여...



    또 델5.0 서버탭에서 제공하는 MS오피스 관련 서버 컴포넌트도 이용해보세요

    대림에서 나온 백운기님이 쓰신 Contect Delphi5라는 시커먼 책에 설명이 잘

    나와있데요...



    혹 다르게 해보시고 성공하시면 저에게도 비법을...^O^;;;;

    그럼 수고하세요..



    델초보 wrote:

    > data를 읽어서 Excel로 보냈습니다. 그 내용을 자동으로 바로 저장하고 싶어서

    > 아래와 같이 했습니다.

    >

    > Excel : Variant;

    > .

    > .

    > .

    > .

    > .

    > 맨 마지막에...

    > Excel.SaveToFile('N'+Copy(cDate,3,6)+'.xls');

    > 그런데 이런 Message가 나옵니다.

    >

    > Method 'SaveToFile' not Supported by automation object... 라구요.

    > 제가 뭔가를 빼고 쓴것 같은데 잘 모르겠습니다.

    > 아시는분 좀 도와주십시요..