data를 읽어서 Excel로 보냈습니다. 그 내용을 자동으로 바로 저장하고 싶어서
아래와 같이 했습니다.
Excel : Variant;
.
.
.
.
.
맨 마지막에...
Excel.SaveToFile('N'+Copy(cDate,3,6)+'.xls');
그런데 이런 Message가 나옵니다.
Method 'SaveToFile' not Supported by automation object... 라구요.
제가 뭔가를 빼고 쓴것 같은데 잘 모르겠습니다.
아시는분 좀 도와주십시요..
무조건 특정 디렉토리에 .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;