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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2008, 00:21   #1
Машутка
Новичок
Джуниор
 
Регистрация: 27.09.2008
Сообщений: 1
По умолчанию переброс данных из Excel в Delphi в реальном режиме времени

Как организовать переброс данных из Excel в Delphi в реальном режиме времени ? Зарание благодарна !!!
Машутка вне форума Ответить с цитированием
Старый 27.09.2008, 02:55   #2
Ring0Sn
Форумчанин
 
Аватар для Ring0Sn
 
Регистрация: 06.09.2007
Сообщений: 239
По умолчанию

http://programmersforum.ru/showthread.php?t=26761
Ring0Sn вне форума Ответить с цитированием
Старый 27.09.2008, 05:26   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Код:
Сохранить StringGrid в Excel файле 

function SaveAsExcelFile(stringGrid: TstringGrid; FileName: string): Boolean; 
const 
  xlWBATWorksheet = -4167; 
var 
  Row, Col: Integer; 
  GridPrevFile: string; 
  XLApp, Sheet: OLEVariant; 
begin 
  Result := False; 
  XLApp  := CreateOleObject('Excel.Application'); 
  try 
    XLApp.Visible := False; 
    XLApp.Workbooks.Add(xlWBatWorkSheet); 
    Sheet      := XLApp.Workbooks[1].WorkSheets[1]; 
    Sheet.Name := 'My Sheet Name'; 
    for col := 0 to stringGrid.ColCount - 1 do 
      for row := 0 to stringGrid.RowCount - 1 do 
        Sheet.Cells[row + 1, col + 1] := stringGrid.Cells[col, row]; 
    try 
      XLApp.Workbooks[1].SaveAs(FileName); 
      Result := True; 
    except 
      // ошибка? 
    end; 
  finally 
    if not VarIsEmpty(XLApp) then 
    begin 
      XLApp.DisplayAlerts := False; 
      XLApp.Quit; 
      XLAPP := Unassigned; 
      Sheet := Unassigned; 
    end;
  end; 
end; 


procedure TForm1.Button1Click(Sender: TObject); 
begin 
  if SaveAsExcelFile(stringGrid1, 'c:\MyExcelFile.xls') then 
    ShowMessage('stringGrid saved!');
end; 

function RefToCell(ARow, ACol: Integer): string; 
begin 
  Result := Chr(Ord('A') + ACol - 1) + i2s(ARow); 
end; 

procedure StringGridToExcel(AGrid: TstringGrid); 
var 
  i, j: Integer; 
  Excel: Application_; 
  Book: Workbook; 
  Sheet: _WorkSheet; 
  Data: OLEVariant; 
begin 
  Data := VarArrayCreate([1, AGrid.RowCount, 1, AGrid.ColCount], 
    varVariant); 
  for i := 0 to AGrid.ColCount - 1 do 
    for j := 0 to AGrid.RowCount - 1 do 
      Data[j + 1, i + 1] := AGrid.Cells[i, j]; 
  Excel := CoApplication_.Create; 
  Book  := Excel.WorkBooks.Add(EmptyParam, 0); 
  Sheet := Excel.Sheets.Add(EmptyParam, EmptyParam, 1, 
    xlWorksheet, 0) as _WorkSheet; 
  Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount, 
    AGrid.ColCount)].Value := Data; 
  Excel.Visible[0] := True; 
  Excel.UserControl := True; 
end;
Чтобы открыть сохраненную таблицу, надо создать кнопку с процедурой открытия и использовать OpenDilog1. В своей программе тоже делал через импорт данных из delphi в excel и обратно.
Ring0Sn, девушка помощи попросила, а вы ее от одного вопроса отправляете к другому.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.

Последний раз редактировалось artemavd; 27.09.2008 в 05:31.
artemavd вне форума Ответить с цитированием
Старый 27.09.2008, 07:19   #4
Ring0Sn
Форумчанин
 
Аватар для Ring0Sn
 
Регистрация: 06.09.2007
Сообщений: 239
По умолчанию

artemavd, и это в реальном времени по твоему?)
и еще советую проснуться (или проспаться), это одно и тоже тело, а не девушка, хотя может и девушка, но "МУЛЬТИК" налицо...

Последний раз редактировалось Ring0Sn; 27.09.2008 в 07:25.
Ring0Sn вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
формат упакованного времени в DELPHI dimonbest Общие вопросы Delphi 32 23.09.2008 02:15
Как организовать вывод сообщений программой в VCL режиме Delphi? Evgenii Помощь студентам 10 28.07.2008 11:28
Импорт внешних данных, синхронизация по времени slba Microsoft Office Excel 3 15.07.2008 13:05
Переброс данных на другой лист в таблицу vodvorezlaya Microsoft Office Excel 1 06.06.2007 14:07
SOL-запрос интервала даты и времени в Delphi DENIS_ БД в Delphi 5 23.12.2006 12:55