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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2010, 18:15   #1
masterdela
Пользователь
 
Аватар для masterdela
 
Регистрация: 28.01.2008
Сообщений: 66
Вопрос Открыть из Delphi файл Excel

Всем доброго времени суток!

Необходимо программно открыть файл Excel и записать некие данные в определенные ячейки. Открыть то получается, а вот записать что-то в него никак. Хотя с экспортом из, например, DBGrid в Excel проблем нет.

Буду благодарен, если кто найдет минуту найти запылившийся кусочек кода, который будет записывать данные в заготовленный ранее файл Excel.

P.S. Надеюсь понятно изложил суть проблемы.
Была бы цель - и всё получится!
masterdela вне форума Ответить с цитированием
Старый 29.03.2010, 18:25   #2
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от masterdela Посмотреть сообщение
Буду благодарен, если кто найдет минуту найти запылившийся кусочек кода, который будет записывать данные в заготовленный ранее файл Excel.

P.S. Надеюсь понятно изложил суть проблемы.
Я делаю так в своей программе...
Код:
  ExcelCreateApplication('Данные',1,false);
  Excel.Sheets.Add(After:=Sheet); //создаю лист Параметры...
  Sheet:=Excel.Sheets.Item[2];
  Sheet.Name:='Параметры';
  for CurSaveParams:=1 to AllSaveParams do
    case CurSaveParams of
      1:begin
          iCnt:=1;
          Sheet.Cells[iCnt,CurSaveParams]:='Анкеты';
          Sheet.Cells[iCnt,CurSaveParams].ColumnWidth:=8;
          Inc(iCnt);
          if EditKda.Text<>'' then
            Sheet.Cells[iCnt,CurSaveParams]:=EditKda.Text;
          for jCnt:=0 to KdaRange do
            begin
              Inc(iCnt);
              Sheet.Cells[iCnt,CurSaveParams]:=KdaListBoxInp.Items[jCnt];
              //центрирую ...
              Sheet.Cells[iCnt,CurSaveParams].HorizontalAlignment:=-4108;
              Application.ProcessMessages
            end
        end;
      2:begin
          iCnt:=1;
          Sheet.Cells[iCnt,CurSaveParams]:='Специализации';
          Sheet.Cells[iCnt,CurSaveParams].ColumnWidth:=15;
          Inc(iCnt);
          if EditSpc.Text<>''
            then Sheet.Cells[iCnt,CurSaveParams]:=EditSpc.Text;
          for jCnt:=0 to SpcRange do
            begin
              Inc(iCnt);
              Sheet.Cells[iCnt,CurSaveParams]:=SpcListBoxInp.Items[jCnt];
              Application.ProcessMessages
            end
        end;
      3:begin
           iCnt:=1;
           Sheet.Cells[iCnt,CurSaveParams]:='Город';
           Sheet.Cells[iCnt,CurSaveParams].ColumnWidth:=15;
           Inc(iCnt);
           for jCnt:=0 to CityRange do
             begin
               Inc(iCnt);
               Sheet.Cells[iCnt,CurSaveParams]:=CityListBoxInp.Items[jCnt]
             end
        end;
//ну и так далее...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 29.03.2010, 18:31   #3
masterdela
Пользователь
 
Аватар для masterdela
 
Регистрация: 28.01.2008
Сообщений: 66
По умолчанию

Спасибо, Grag. С созданием нового Excel проблем нет. Но когда открываю программно ранее созданный и пытаюсь записать, например
Код:
Cells[x,y] := 'xyz'
он мне отвечает что метод Cells не поддерживается.
Была бы цель - и всё получится!

Последний раз редактировалось masterdela; 29.03.2010 в 18:32. Причина: Буковку потерял ...
masterdela вне форума Ответить с цитированием
Старый 29.03.2010, 23:49   #4
Vlad_55
Пользователь
 
Регистрация: 03.11.2007
Сообщений: 22
По умолчанию

Цитата:
Сообщение от masterdela Посмотреть сообщение
Спасибо, Grag. С созданием нового Excel проблем нет. Но когда открываю программно ранее созданный и пытаюсь записать, например
Код:
Cells[x,y] := 'xyz'
он мне отвечает что метод Cells не поддерживается.
Видимо не у того объекта Cell просите. Было дело рассматривал работы с Excel подробно здесь http://www.webdelphi.ru/tag/excel-v-delphi/ от простой записи ячеек до внедрения документов Word в лсты Excel, думаю должно Вам помочь. Кстати, Range не пробовали использовать вместо Cells вот так:
Код:
var i:integer;
    s: single;
    str: string;
    Sheet: OLEVariant;
begin
  i:=100;
  s:=2.12;
  str:='Hello World!';
  Sheet.Range['A1'].Value:=i;
  Sheet.Range['A2'].Value:=s;
  Sheet.Range['A3'].Value:=str;
end;
WebDelphi.ru - блог о программировании на Delphi
Vlad_55 вне форума Ответить с цитированием
Старый 30.03.2010, 09:23   #5
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от masterdela Посмотреть сообщение
Спасибо, Grag. С созданием нового Excel проблем нет. Но когда открываю программно ранее созданный и пытаюсь записать, например
Код:
Cells[x,y] := 'xyz'
он мне отвечает что метод Cells не поддерживается.
Ну, так ты приведи хоть часть кода, где открываешь ранее созданную книгу и как ты с ней работаешь...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 30.03.2010, 10:47   #6
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Искать по форуму не хотим ? Проще создать еще одну тему-клон ?
http://programmersforum.ru/showthread.php?t=14064
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
открыть файл Excel в пустой книге segail Microsoft Office Excel 1 29.03.2010 11:30
как открыть текстовый файл из ресурса{$R *.RES} в мемо1 (Delphi 7) veronika93 Помощь студентам 1 20.03.2009 08:58
Как на Delphi открыть для записи файл в интеренте? Tyson78 Работа с сетью в Delphi 4 15.02.2008 10:16
Как открыть файл в Excel globalhunter Общие вопросы Delphi 2 11.02.2008 01:30
Как открыть и сохранить mp3 файл в delphi? Rahim1993 Мультимедиа в Delphi 2 03.01.2008 12:55