맨날 눈팅만 해서 죄송합니다.
엑셀파일로 데이터를 보내는 방법은 찾았는데요..(숫자를 보내도 엑셀에서 텍스트로 인식하는..)
아래소스를 실행해보면 윈도우에 엑셀창을 띄워 전송된 데이터를 보여주는 형식입니다.
제가 원하는 방식은 엑셀을 띄우지 않고
원하는 경로의 파일명으로 바로 저장을 하고 싶은데요..
어떻게 구현을 해야 하나요?(아래소스를 좀 수정해서..^^)
procedure TForm1.Button1Click(Sender: TObject);
var
XL,WorkBook: Variant;
i : integer;
ArrV: OleVariant;
Row,Col : Integer;
begin
try
XL:= CreateOleObject('Excel.Application');
except
Application.MessageBox('Excel이 설치되어 있지 않습니다. 먼저 Excel을 설치하세요.',
'오류', MB_OK or MB_ICONERROR);
Screen .Cursor := crDefault;
Exit;
end;
Application.ProcessMessages;
try
WorkBook := XL.WorkBooks.Add;
//Data import
ArrV := VarArrayCreate([0, StringGrid1.RowCount, 0, StringGrid1.ColCount], varOleStr);
for Row := 0 to StringGrid1.RowCount do
begin
for Col := 0 to StringGrid1.ColCount do
begin
Application.ProcessMessages;
ArrV[Row, Col] := StrToInt(StringGrid1.cells[Col, Row]);
end;
end;
XL.Range[XL.Cells[1, 1], XL.Cells[StringGrid1.RowCount, StringGrid1.ColCount]].Value := ArrV;
XL.DisplayAlerts := False;
XL.Visible:= True;
finally
Application.ProcessMessages;
end;
end;
False 로 설정하면 엑셀이 보이지 않습니다. 그 밑으로 저장하고 종료하는 부분을 넣으면 되겟죠?
XL.WorkBook.SaveAs(파일명); //저장하고..(WorkBook인지 기억이 안나는군요. XL 아니면 ActiveWorkBook인거 같은데..아마도 될것같다는...)
XL.Quit; //종료함..
흠 기억나는대로 써보긴 했는데 정확하지 않습니다. 데탑에 예전에 만들어두었던게 있는데 지금 꺼져 있어서..^^;; 낼 확인해보고 틀렸으면 다시 수정할께요..
그럼..