엑셀파일로 변환을 시킬라고 하는데..
각 필드 값 사이에는 콤마(,)를 그리고 줄이 바뀌면..이건 그냥 줄바꿈 하면 된다고 해서
쿼리를 날려서 가져온 값을 파일에 위의 방법으로 저장시킬라고 하는데..
한줄 받아서 규칙맞추어서 저장시키고 다음줄 받아서 또 저장시키고 할라고하는데..
좀 도와주세요
if Not(DirectoryExists(strPass)) then //if Current Directory/Config is empty
if not CreateDir(strPass) then //Make the Current Directory/Config
raise Exception.Create('Cannot create ' + strPass);
자료를 쿼리한 후에 다음처럼....
var
data0,data1, data2, data3, data4, data5, data6: string;
strPass : string;
FStream : TFileStream;
dsave : TSaveDialog;
begin
strPass := GetCurrentDir + 'excel';
if Not(DirectoryExists(strPass)) then //if Current Directory/Config is empty
if not CreateDir(strPass) then //Make the Current Directory/Config
raise Exception.Create('Cannot create ' + strPass);
dsave:= TSaveDialog.Create(self);
dsave.Title := '저장을 하시겠습니까?';
dsave.FileName := '파일명'; // 여기에 파일명을 적습니다.
dsave.InitialDir := strPass;
dsave.DefaultExt := 'xls';
dsave.Filter := 'Microsoft Excel 통합문서(*.xls)|*.xls';
if dsave.Execute then
begin
strPass := dsave.FileName;
FStream := TFileStream.Create(strPass , fmCreate);
with query1 do
begin
first;
while not eof do
begin
data0 := FieldByName('필드명1').AsString + #9;
data1 := FieldByName('필드명2').AsString + #9;
data2 := FieldByName('필드명3').AsString + #9;
data3 := FieldByName('필드명4').AsString + #9;
data4 := FieldByName('필드명5').AsString + #9;
data5 := FieldByName('필드명6').AsString + #9;
data6 := FieldByName('필드명7').AsString + #9#13#10;
FStream.Write(data0[1], length(data0));
FStream.Write(data1[1], length(data1));
FStream.Write(data2[1], length(data2));
FStream.Write(data3[1], length(data3));
FStream.Write(data4[1], length(data4));
FStream.Write(data5[1], length(data5));
FStream.Write(data6[1], length(data6));
next;
end;
end;
FStream.Free;
end;
if (Application.MessageBox('파일을 실행하시겠습니까?', '확인', MB_OKCANCEL) = IDCANCEL) Then
Exit;
ShellExecute(Handle, 'open', PChar('EXCEL.EXE'), PChar(strPass), '', SW_SHOW);
end;