Q&A

  • [질문]엑셀에서 문자열을 찾아서 가져오기방법 ?
간단한  프로그램 짤려고 하는데요

원하는 파일명을 가져온다.(filelist컴퍼넌트 이용)
파일명에서 원하는 문자열 만큼의 문자열을 가져온다. = 해결함

1.가져온 문자열을  엑쎌에 있는 문자열과 비교해서 찾는다.
2.찾은 문자열의 쎌의 위치 값을 참조하여 왼쪽 두번째 위치에 있는 쎌의 문자열을 가져온다.

3.가져온 문자열을 파일명으로 이름 바꾸기한다. => 해결함
4.바꿀이름이 저장할 위치에 있으면 마지막 라인에 '_(숫자)'를 붙인다.(숫자는 증가함) =>해결함


코딩 방법좀 알려주셔요
고수님들 부탁해요 ^^

위의 방법중  1. 의 방법이라도 해결할 방법이 있을까요?
2  COMMENTS
  • Profile
    dbwrite 2010.02.04 02:40
    엑셀 파일 불러 오기 이런걸로 찾으면 조금 나올텐데요...

    참조하세요

    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;
  • Profile
    띵아 2010.02.09 07:09
    감사합니다. ^^ 웅 많은 참조가 되었습니다.^^ 이 코딩은 단순히
    스트링 그리드에 뿌려주는 코딩으로 확인되는데요^^