На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Rouse_, jack128, Krid
  
    > XLS -> TStringGrid
      ExpandedWrap disabled
        function Xls_To_StringGrid(AGrid: TStringGrid; AXLSFile: string): Boolean;
        const
          xlCellTypeLastCell = $0000000B;
        var
          XLApp, Sheet: OLEVariant;
          RangeMatrix: Variant;
          x, y, k, r: Integer;
        begin
          Screen.Cursor:=crAppStart;
          Result := False;
          XLApp := CreateOleObject('Excel.Application');
          try
            XLApp.Visible := False;
            XLApp.Workbooks.Open(AXLSFile);
            Sheet := XLApp.Workbooks[ExtractFileName(AXLSFile)].WorkSheets[1];
            Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
            x := XLApp.ActiveCell.Row;
            y := XLApp.ActiveCell.Column;
            AGrid.RowCount := x;
            AGrid.ColCount := y;  
            RangeMatrix := XLApp.Range['A1', XLApp.Cells.Item[X, Y]].Value;
            k := 1;
            repeat
              for r := 1 to y do
               AGrid.Cells[(r - 1), (k - 1)] := RangeMatrix[K, R];
              Inc(k, 1);
              AGrid.RowCount := k + 1;  
            until k > x;  
            RangeMatrix := Unassigned;
          finally
            if not VarIsEmpty(XLApp) then
            begin  
              XLApp.Quit;  
              XLAPP := Unassigned;  
              Sheet := Unassigned;  
              Result := True;  
            end;  
          end;
          Screen.Cursor:=crDefault;
        end;


      Эта тема была разделена из темы "MS Excel + Delphi"
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0220 ]   [ 16 queries used ]   [ Generated: 28.03.24, 18:42 GMT ]