Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> StringGrid в Excel, StringGrid в Excel, незадекларированные 
V
    Опции темы
Alkor135
Дата 5.6.2009, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 5.4.2009

Репутация: нет
Всего: нет



Нашел вот такую функцию, которая сохраняет StringGrig в 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'); // создаём OLE объект... т.е. открываем эксель
  try
    XLApp.Visible := False; // Окно экселя делаем невидимым... там быстрее работает
    XLApp.Workbooks.Add(xlWBatWorkSheet); // создаём документ
    Sheet      := XLApp.Workbooks[1].WorkSheets[1]; // переменная sheet означает первый лист созданного нами документа
    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]; // заполняем ячейки в экселе значениями из stringgrid'а
    try
      XLApp.Workbooks[1].SaveAs(FileName); // сохраняем файл
      Result := True;
    except
      // Error ?
    end;
  finally
    if not VarIsEmpty(XLApp) then // если xlapp что-то присвоено
    begin
      XLApp.DisplayAlerts := False; // не показывать всякие предупреждения (например вопрос о сохранении файла)
      XLApp.Quit; // закрыть эксель
      XLAPP := Unassigned;  // и забываем переменные
      Sheet := Unassigned;
    end;
  end;
end;


Когда ее вставляю в программу, Delphi ругается, что незадекларированные индентификаторы:
Undeclared identifier 'CreateOleObject'
Undeclared identifier 'Worksheets'
Undeclared identifier 'SaveAs'

Подскажите как мне их задекларировать?
PM MAIL   Вверх
kami
Дата 5.6.2009, 22:18 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Ставим курсор на функцию CreateOLEObject, нажимаем F1
Получаем, что в uses нужно прописать модуль ComObj.
PM MAIL WWW   Вверх
Alkor135
Дата 6.6.2009, 04:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 5.4.2009

Репутация: нет
Всего: нет



Цитата(kami @ 5.6.2009,  22:18)
Ставим курсор на функцию CreateOLEObject, нажимаем F1
Получаем, что в uses нужно прописать модуль ComObj.

По ComObj нашел.
А вот для 'Worksheets' и 'SaveAs' ничего не понял.
Подскажите плиз.
PM MAIL   Вверх
kami
Дата 6.6.2009, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Цитата(Alkor135 @  6.6.2009,  04:47 Найти цитируемый пост)
А вот для 'Worksheets' и 'SaveAs' ничего не понял.

В смысле?
После добавления в uses пример должен был нормально откомпилироваться, это ж вариантные переменные.
PM MAIL WWW   Вверх
Alkor135
Дата 6.6.2009, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 5.4.2009

Репутация: нет
Всего: нет



Цитата(kami @ 6.6.2009,  08:28)
Цитата(Alkor135 @  6.6.2009,  04:47 Найти цитируемый пост)
А вот для 'Worksheets' и 'SaveAs' ничего не понял.

В смысле?
После добавления в uses пример должен был нормально откомпилироваться, это ж вариантные переменные.

Точно, компилится нормально.
А ошибки показывает.
Почему?
user posted image
PM MAIL   Вверх
kami
Дата 6.6.2009, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Цитата(Alkor135 @  6.6.2009,  11:58 Найти цитируемый пост)
Точно, компилится нормально.А ошибки показывает.

Теперь я ничего не понял.
Так компилируется, или показывает ошибки?
Если Delphi считает, что в коде синтаксическая ошибка, то компилировать откажется.
PM MAIL WWW   Вверх
Alkor135
Дата 6.6.2009, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 5.4.2009

Репутация: нет
Всего: нет



Цитата(kami @ 6.6.2009,  12:04)
Цитата(Alkor135 @  6.6.2009,  11:58 Найти цитируемый пост)
Точно, компилится нормально.А ошибки показывает.

Теперь я ничего не понял.
Так компилируется, или показывает ошибки?
Если Delphi считает, что в коде синтаксическая ошибка, то компилировать откажется.

При компиляции ошибок не показывает.
И файл создает прекрасно. 
Ошибки только те, что на скриншоте.
А вобщем спасибо, ведь все работает.
PM MAIL   Вверх
Данкинг
Дата 6.6.2009, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Юзай Дельфи 7.0 и не парься. Там всё отлично работает. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0485 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.