Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > TMS (TAdvGridExcelIO) cannot Load From file


Автор: NOCaut 11.8.2014, 14:07
Пытаюсь сделать импорт *.xls файла с 7 вкладками.
метод FExcelIO.XLSImport(aFileName); - работает только для статический компонентов. Если создать его динамически - получаю ошибки
Error: "Exception with message 'There is no AdvStringGrid assigned to this component'." 

Например:
Код
procedure TForm1.btn1Click(Sender: TObject);
var
  FExcelIO: TAdvGridExcelIO;
begin
  FExcelIO := TAdvGridExcelIO.Create(nil);
  FExcelIO.XLSImport('d:\xxx.xls');
  FExcelIO.AdvGridWorkbook := advgrdwrkbk1;
end;


Добавлено Добавлено @ 13:54
Я написал свои функции по загрузки и выгрузке, но не уверен что они правильно работают. Все ли я правильно сделал?

Код
procedure TAdvSpreadBook.LoadFromFile(const aFileName: string);
var
  i: Integer;
  G: TAdvSpreadGrid;
begin
  FExcelIO.XLSImport(aFileName);
  exit;

  while FPageControl.PageCount > 0 do
    FPageControl.Pages[0].Free;

  FExcelIO.LoadSheetNames(aFileName);

  for I := 0 to FExcelIO.SheetNamesCount - 1 do
  begin
    G := NewGrid(FExcelIO.SheetNames);

    FExcelIO.AdvStringGrid := G;
    FExcelIO.XLSImport(aFileName);
  end;
end;


Код
procedure TAdvSpreadBook.SaveToFile(const aFileName: string);
var
  i: Integer;
begin
 for I := 0 to FExcelIO.SheetNamesCount -1 do
 begin
   FExcelIO.AdvStringGrid := GetGrids(I);
   FExcelIO.XLSExport(aFileName, FExcelIO.SheetNames[i]);
 end;
end;

Автор: NOCaut 11.8.2014, 14:25
FExcelIO.AdvGridWorkbook := advgrdwrkbk1; - попутал местами строки

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)