Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2015, 11:39   #31
AndrzejX
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 55
По умолчанию

Спасибо Rick, конечно нужно будет поучиться работать и с fpSpreadSheet. Но пока хотел добить текущий вариант. Так вот, оказалось пропущена важная процедура: активация нужной страницы. Без неё независимо от указания имени страницы читается всегда только текущая. В источнике процедура активации выглядит так:

Код:
  Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
но выдаёт ошибку. Правильный вариант банален:

Код:
Sheet.Activate;
Оказалось, без переменной Sheet можно вообще обойтись, совместив два оператора в один:

Код:
  Books.WorkSheets[WideString(SheetName)].Activate;
Надеюсь, это окончательный вариант, и кому-нибудь пригодится, выкладываю всё целиком:
Код:
uses ComObj;

type TRegion = Array of Array of String;

procedure ReadExcelFile(FileName, SheetName: String; ColCount, RowCount: Integer; var Region: TRegion);
var
  Excel, Books, Matrix: Variant;
  i, j: Integer;
begin
try
  Excel := CreateOleObject('Excel.Application');
  Books := Excel.Workbooks.Open(WideString(FileName));
  Books.WorkSheets[WideString(SheetName)].Activate;

  if ColCount > RowCount
    then i:=ColCount
    else i:=RowCount;
  Matrix := Excel.Range['A1', Excel.Cells.Item[i, i]].Value;
     for i := 0 to ColCount-1 do
     for j := 0 to RowCount-1 do
       Region[i, j] := Matrix[j+1, i+1];
finally
  Excel.Quit;
end;
end;
AndrzejX вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Lazarus в Linux - Поиск файлов в папке BLACK_RAIN Lazarus, Free Pascal, CodeTyphon 4 08.10.2014 11:23
Обработка файлов(lazarus). Chelovekpredel Lazarus, Free Pascal, CodeTyphon 2 23.09.2012 12:14
Чтение и запись больших excel файлов на c# Bi0max C# (си шарп) 0 21.08.2012 20:33
Lazarus подключение .so, .dll файлов Diez_ Lazarus, Free Pascal, CodeTyphon 19 07.07.2011 21:23
Открытие html-файлов в Lazarus student2008 Lazarus, Free Pascal, CodeTyphon 2 25.12.2010 11:07