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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2009, 12:05   #1
Nocturnal
 
Регистрация: 08.12.2009
Сообщений: 8
По умолчанию Из Excel в Memo

Доброго времени суток. Снова беда =) Нужно скопировать из Excel-я два первых столба в Memo. Я пока пробую построить цикл хотябы для 1-го... но если поможите и с двумя буду очень благодарен! Вот мои не рабочий код:

procedure TForm1.Button3Click(Sender: TObject);
function VarToInt(var AVariant: variant; DefaultValue: integer = 0): integer;
var e,ee:Variant;
i,Def:integer;
begin
DefaultValue:=0;
Result:=DefaultValue;
e:=CreateOleObject('Excel.Applicati on');
ExtractFilePath(Application.ExeName );
e.WorkBooks.Open('D:\Documents and Settings\Admin\Мои документы\Прога\1.xls');
ee:=e.Sheets.Item[1];
if VarIsNull(ee) then
Result := 0
else
if VarIsOrdinal(ee) then
Result := StrToInt(VarToStr(ee));
for i:=1 to StrToInt(VarToStr(ee.columns['A'])) do
Memo3.Lines.Add(ee.Cells[i,1].Text);
e.WorkBooks.Item[1].Save;
e.Quit;
e:=UnAssigned;

end;
end.


За ранее спасибо!
Nocturnal вне форума Ответить с цитированием
Старый 12.12.2009, 16:36   #2
AlexanderKs
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 60
По умолчанию

Для работы с Excel и Word, по моему, лучше использовать компоненты вкладки Servers, в данном случае - ExcelApplication.

Свойство AutoConnect необходимо сделать true, AutoQuit - на ваше усмотрение.

Код:
procedure TForm1.Button1Click(Sender: TObject); // кнопка "открыть"
begin
  ExcelApplication1.Visible[0]:=true;
  ExcelApplication1.Workbooks.Open('путь к книге *.xls', EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);

end;

procedure TForm1.Button2Click(Sender: TObject); // кнопка "прочитать"
var i:word;
begin
Memo1.Lines.Add('А'+'  В');
  for i:=1 to 65535 do begin
     with ExcelApplication1 do begin
        if (Range['A'+IntToStr(i),EmptyParam].Text='') and
          (Range['B'+IntToStr(i),EmptyParam].Text='') then
             Break; // условие остановки цикла (если строка пустая)

       Memo1.Lines.Add(Range['A'+IntToStr(i),EmptyParam].Text+'  ' +Range['B'+IntToStr(i),EmptyParam].Text);
     end;
  end;
end;
Возможно, не совсем красиво выглядит код для открытия книги (приходится указывать 14 "пустых" параметров) - но другого способа запуска сохранённой книги через ExcelApplication я не знаю..

Если понадобится информация по вкладке Servers, кое что сможете найти здесь

Последний раз редактировалось AlexanderKs; 12.12.2009 в 16:55.
AlexanderKs вне форума Ответить с цитированием
Старый 12.12.2009, 18:55   #3
Nocturnal
 
Регистрация: 08.12.2009
Сообщений: 8
По умолчанию

Огромное спасибо! И литературка помогла и код! Очень выручили.
Nocturnal вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запретить запуск программы на VBA Excel 2003 в Excel 2007 kovalevskivf Microsoft Office Excel 2 15.05.2009 16:47
Перевод из Memo по английскому в Memo по русскому Sanek777 Общие вопросы Delphi 5 26.09.2008 00:17
В Memo сделать так, чтобы текст был разного цвета, разноцветный memo Artem Компоненты Delphi 3 07.09.2007 13:40
В Memo ввёл раз!!! в Memo ввёл два!!! а где Memo ввёл раз??? Хs-You Компоненты Delphi 6 19.08.2007 19:48