Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.04.2009, 00:57
Shrews Shrews вне форума
Прохожий
 
Регистрация: 26.10.2008
Сообщения: 4
Репутация: 10
По умолчанию delphi и excel

помогите плис как зделать штоб вивод с excel файла начиналса с первой ячейку stringgrida а не с второй


Код:
procedure TForm1.Button15Click(Sender: TObject);
var
 WorkBk: _WorkBook;
 WorkSheet: _WorkSheet;
 K,R,X,Y: integer;
 IIndex: OleVariant;
 RangeMatrix: Variant;
 NomFich: WideString;
begin
 NomFich:=ExtractFilePath(ParamStr(0))+'xl.xls';
 IIndex:=1;
 XLApp.Connect;
 // Открываем файл Excel
 XLApp.WorkBooks.Open(NomFich,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
       EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                                                EmptyParam,EmptyParam,0);
 WorkBk:=XLApp.WorkBooks.Item[IIndex];
 WorkSheet:=WorkBk.WorkSheets.Get_Item(1) as _WorkSheet;
 // Чтобы знать размер листа (WorkSheet), т.е. количество строк и количество
 // столбцов, мы активируем его последнюю непустую ячейку
 WorkSheet.Cells.SpecialCells(xlCellTypeLastCell,EmptyParam).Activate;
 // Получаем значение последней строки
 X:=XLApp.ActiveCell.Row;
 // Получаем значение последней колонки
 Y:=XLApp.ActiveCell.Column;
 // Определяем количество колонок в TStringGrid
 StringGrid1.ColCount:=Y+1;
 // Сопоставляем матрицу WorkSheet с нашей Delphi матрицей
 RangeMatrix:=XLApp.Range['A1',XLApp.Cells.Item[X,Y]].Value2;
 // Выходим из Excel и отсоединяемся от сервера
 XLApp.Quit;
 XLApp.Disconnect;
 //  Определяем цикл для заполнения TStringGrid
 K:=1;
  repeat
   for R:=1 to Y do
    StringGrid1.Cells[(R),(K)]:=RangeMatrix[K,R];
    StringGrid1.RowCount:=K+1;
    inc(K,1);
  until K>X;
 // Un assign the Delphi Variant Matrix
 RangeMatrix:=Unassigned;
end;
и второе запись из стрингрида в excel немогу понять в чем ошибка

Код:
Код:


procedure TForm1.Button13Click(Sender: TObject);
var
 Excel, WorkBook, Sheet: Variant;
begin
 Excel:=CreateOleObject('Excel.Application.10'); // для Office XP
// Excel:=CreateOleObject('Excel.Application'); // для остальных
 Excel.SheetsInNewWorkbook:=1;
 WorkBook:=Excel.WorkBooks.Add;
 Sheet:=WorkBook.WorkSheets[1];
 Sheet.Cells.VerticalAlignment:=xlCenter;
 Sheet.Cells[1, 1]:='XX___1___XX';
 Sheet.Cells[5, 5]:='XX___1___XX'; 
 Sheet.Cells.Columns.AutoFit;
 Excel.Visible:=True;
end;
п.с сорри за орфографию
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:06.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter