Q&A

  • 엑셀파일내에 sheet명들을 알수있는지....
델에서 엑셀파일을 불러서 스트링그리드에 뿌려주는데 엑셀파일내에 sheet들이 한글명으로 여러개가 있을 때 sheet명을 선택하여 특정 sheet를 그리드안에 뿌리려고 하는데 지금은     exSheet := ExcelBook.WorkSheets.Item[2];

위 처럼 숫자로 선택하여 뿌려주는데 미리 몇개의 sheet가 있고 있는 sheet의 이름들을
나열하여 선택하여 선택한 sheet만 화면에 보여줄 수 없는지 조언 부탁합니다.

그리고 sheet를 선택하여 화면에 뿌려주면서 특정 cell에 내용이 없으면 skip하도록 하였는데 space로 나 trim을 사용하여도 내용은 없는데 check가 안되는데 혹시 이유를 아시는 분은 더불어 조언 부탁드립니다.    
1  COMMENTS
  • Profile
    Crazy™ 2006.05.03 21:00
    안녕하세요.
    1.자료실인가 팁에 있던 자료인데 이중에 보니  Worksheets.Count 도 있고 해당 명칭도 가져올수 있네요.
    참조하시면 될듯.
    2. 1번에서 카운트와 이름가져오시면 그걸로 엑셀 오픈후에 화면뿌리기전 구현하심 될테고..
    3. 은 불확실하지만 엑셀자료에서 셀형식이 텍스트가 아닌 일반 또는 숫자에 따라 영향이 틀려집니다.
       또한 VartoStr이나 Length등으로 체크하심 될것 같네요.

    var
      LCID,i : Integer;
      Sheet, Selection : Variant;
      Format : OleVariant;
      //차트용
      ChObj: ChartObject;
      SheetType: OleVariant;
      Rnge, ChType: OleVariant;
      Ax: Axis;
    begin
      excelApplication1.Connect; //엑셀을
    가동한다.(InVisible 상태)

    ExcelWorkbook1.connectto(excelApplication1.workbooks.add(TOleEnum(xlWBATWorksheet),
    LCID));

    ExcelWorksheet1.connectto(excelWorkbook1.worksheets.item['Sheet1']
    as _worksheet );

      //워크시트 이름 변경
      excelWorksheet1.Name := '날 죽여라';


      excelApplication1.DisplayAlerts[LCID] := False;
      excelApplication1.Visible[LCID] := true;

      Sheet :=
    ExcelApplication1.WorkBooks[ExcelApplication1.Workbooks.Count].WorkSheets[excelWorkbook1.Worksheets.Count];

      Sheet.Cells[1,1] := '엑셀서식';