간단한 프로그램 짤려고 하는데요
원하는 파일명을 가져온다.(filelist컴퍼넌트 이용)
파일명에서 원하는 문자열 만큼의 문자열을 가져온다. = 해결함
1.가져온 문자열을 엑쎌에 있는 문자열과 비교해서 찾는다.
2.찾은 문자열의 쎌의 위치 값을 참조하여 왼쪽 두번째 위치에 있는 쎌의 문자열을 가져온다.
3.가져온 문자열을 파일명으로 이름 바꾸기한다. => 해결함
4.바꿀이름이 저장할 위치에 있으면 마지막 라인에 '_(숫자)'를 붙인다.(숫자는 증가함) =>해결함
코딩 방법좀 알려주셔요
고수님들 부탁해요 ^^
위의 방법중 1. 의 방법이라도 해결할 방법이 있을까요?
참조하세요
If OpenDialog1.Execute then
begin
m_File := OpenDialog1.FileName;
try
ExcelApp := CreateOLEObject('Excel.Application');
except
Posclass.proMessage('엑셀 실패','Excel이 설치되어 있지 않습니다!');
Exit;
end;
try
ExcelApp.Visible := False;
ExcelApp.DisplayAlerts := False;
ExcelBook := ExcelApp.WorkBooks.Open(m_File);
ExcelBook := ExcelApp.WorkBooks.item[1];
ExcelSheet := ExcelBook.Worksheets.Item[1];
if ExcelSheet.UsedRange.Rows.count > 1 then
begin
//rcount := ExcelSheet.UsedRange.Rows.count + 1 ;
AdvStringGrid1.RowCount := ExcelSheet.UsedRange.Rows.count + 1;
end;
if ExcelSheet.Cells.CurrentRegion.Columns.Count > 1 then
begin
//cCount := ExcelSheet.Cells.CurrentRegion.Columns.Count + 1;
AdvStringGrid1.ColCount := ExcelSheet.Cells.CurrentRegion.Columns.Count + 1;
end;
ProgressBar1.Max := AdvStringGrid1.RowCount;
for j := 1 to AdvStringGrid1.RowCount do
begin
AdvStringGrid1.Cells[0,J] := IntToStr(J );
for i := 1 to AdvStringGrid1.ColCount do
begin
AdvStringGrid1.Cells[i,j] := Return_changestr(VarToStr(ExcelSheet.Cells[j,i]),'''','/');
end;
ProgressBar1.Position := j;
end;
ExcelApp.WorkBooks.Close;
ExcelApp.quit;
ExcelApp := unassigned;
Except on err : exception do
begin
ExcelApp.WorkBooks.Close;
ExcelApp.quit;
ExcelApp := unassigned;
Posclass.proMessage('엑셀 실패', '작업이 취소되었습니다. Data확인요망-'+err.message);
end;
end;
try
ExcelApp := unassigned ;
ExcelBook := unassigned;
ExcelSheet:= unassigned;
except
end;
end;