> ВАЖНО: Как создавать темы в данном разделе

Уважаемые студенты! Если хотите, чтобы ваша просьба была рассмотрена и решена в кратчайшие сроки то, пожалуйста, следуйте следующим простым правилам:

1. Создавайте информативные заголовки тем. Никаких помогите плизз,Решите срочно!! и т.п. Конкретно пишите, в чем проблема.
2. В самой теме КОНКРЕТНО и ПОЛНОСТЬЮ указывайте задание. Варианты в духе:Ну там типа массив, нуно его это типа.. ну это Рассматриваться НЕ БУДУТ.
3. ОБЯЗАТЕЛЬНО указывайте нужный ЯЗЫК решения и дополнительные условия, если они есть.
4. Старайтесь ВСЕГДА сначала решить задачу САМОСТОЯТЕЛЬНО, ну, а когда не выходит, ОБЯЗАТЕЛЬНО публикуйте здесь свой код, даже если он не работает. Поверьте, это значительно повышает к вам уважение. Халявщиков, которым нужно, чтобы им просто кто-нить нахаляву сделал, здесь не любят. Да и исправить мелкую ошибку в готовом коде легче, чем писать все заново. При публикации кода используйте теги кода (см. Теги форматирования кода. Справка по Bb-кодам).
5. Ну а те, кто не хочет что-то делать самостоятельно, должны понимать, что работа людей стоит денег. Даже самая мелкая. А потому, если вы готовы платить за решение своей проблемы, то так же указывайте это в своей теме. Что-то в духе: Нужно решить такую-то задачу. Оплата.

В случае НЕ СЛЕДОВАНИЯ этим простым правилам ваша тема может быть удалена/пересена/закрыта/отредактирована по настроению модератора (А они здесь злые=).

Удачи.

Delphi + Excel
Роман1Сергеевич
сообщение 18:11:2010, 09:30
Сообщение #1
Вставить ник
Новенький
Иконка группы

Репутация:     0  



Здравствуйте!
Я начинаю только писать на D7. Первая моя задача такова: Есть Excel файл 97-2003 мне в нём забита инфа с A1 до J18. В первой строке наименования столбцов, в каждой строке инфа об одном человеке. Мне необходимо просматривать каждого человека по-очереди и если необходимо изменять одно из этих полей. Допустим ячейку из столбца I.
Т.к. не имею инфы о всех компонентах попытался в поле мемо что-то выгрузить, но D7 сразу ругнулся на несоответствие типов.
Помогите пожалуйста.
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComObj, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    btnClose: TBitBtn;
    mmo1: TMemo;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Excel: Variant;
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
begin
Excel:=CreateOleObject('Excel.Application');
Excel.Workbooks.open['F:\Delphi\Projects\Excel\1.xls'];
Excel.visible:=False;
mmo1:=Excel.Range['A5:J5'];
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;
end;

end.
Перейти в начало страницы
 
Цитата Цитировать сообщение
 
Start new topic
Ответов (1 - 15)
Роман1Сергеевич
сообщение 18:11:2010, 09:54
Сообщение #2
Вставить ник
Новенький
Иконка группы

Репутация:     0  



Пойду искать что такое АДО... А то до этого встречал получается только ОЛЕ.
Перейти в начало страницы
 
Цитата Цитировать сообщение
BVS
сообщение 18:11:2010, 13:46
Сообщение #3
Вставить ник
Продвинутый
Иконка группы

Репутация:     2  




Цитата:
(Роман1Сергеевич @ 18:11:2010 - 12:30) *
 
mmo1:=Excel.Range['A5:J5'];


А ведь действительно несоответствие типа :-).
Почитай пожалуйста инфу по работе с TMemo.
А насчет Excel.Range['A5:J5'] уж лучше Range['A1'].Value (если конечно у тебя ячейки не объедены).
Насчет ADO почитать не вредно. Однако с Ole понятней и к тому же если редактировать книгу с помощью Excel-я доступ через Ado может и пропасть :-(. ADO хорошо когда надо создать побыстрому книгу и скинуть в нее таблицы.


--------------------
Перейти в начало страницы
 
Цитата Цитировать сообщение
BVS
сообщение 19:11:2010, 05:18
Сообщение #4
Вставить ник
Продвинутый
Иконка группы

Репутация:     2  




Цитата:
(sax_ol @ 18:11:2010 - 17:01) *
 
С какого перепугу? И почему при оле не пропадает?


ADO работает с книгой как с базой данных. Иногда при сохранении книги меняется структура листа и к нему становиться невозможно обратиться как к таблице. (По крайней мере в 2003 офисе это точно было, в 2007 может и исправили (хотя я сомневаюсь: все таки excel дает гораздо больше возможности чем просто таблица в БД, и соответственно обычных методов работы с таблицами через SQL запросов для него недостаточно).
А почему при OLE должно пропадать? Ведь OLE использует специальные интерфейсы для работы с excel`ем. И его функциональности вполне достаточно для полной работы с excel`ем (а не только на уровне БД).

Цитата:
(sax_ol @ 18:11:2010 - 17:01) *
 
Опять таки доступ к полю при адо осуществляется по имени этого самого поля (т.е. датасетю.ФилдБайНэйм('Имя'))


С какой это стати?
Доступ через ADO идет только через SQL запросы, а датасетю.ФилдБайНэйм('Имя'), это всего лишь компонента которая в конечно счете все твои действия с БД переводить на SQL запросы. А как ты осуществишь SQL запрос к объеденным ячейкам (а если объедены и строки)?

Сообщение отредактировал BVS - 19:11:2010, 07:26


--------------------
Перейти в начало страницы
 
Цитата Цитировать сообщение
BVS
сообщение 19:11:2010, 08:30
Сообщение #5
Вставить ник
Продвинутый
Иконка группы

Репутация:     2  




Цитата:
(sax_ol @ 19:11:2010 - 10:40) *
 
Что такое иногда? Не встречал.



А я к сожалению встречал. Стоило нажать на кнопку сохранить в 2003 excele и все... Доступа через ADO нет sad.gif


Цитата:
(Роман1Сергеевич @ 18:11:2010 - 12:30) *
 
Excel.Range['A5:J5']



Это уже запрос объеденных ячеек (т.е. из заданной задачки можно предположить: что они есть).


Цитата:
(sax_ol @ 19:11:2010 - 10:40) *
 
И это +, тут и компоненты есть, а при оле все руками.



TExcelApplication - тоже есть компонента.

Но автор сам в задачке выбрал OLE. И в место того чтобы подсказать ты его запутываешь каким то ADO (может он впервые еще сталкивается с SQL). Да к тому же еще не зная подойдет ли его файлик (а судя из задачки он у него уже есть) для подключения через ADO.



Цитата:
(sax_ol @ 19:11:2010 - 10:40) *
 
В этом то ит мощь. Зачем мне тыкатся по листу если я написал select * from t where name like '%' и все, как в сказке.


Действительно сказка - при отсутствующем подключении.


Цитата:
(sax_ol @ 19:11:2010 - 10:40) *
 
Его там даже много чем требуется, в том то и вопрос а нафига? можно проще и эфективнее.


Сдесь полностью согласен: вносить данные в новую книгу очень удобно и быстро. А вот извлекать запаришься - особенно если пользователь что то изменил в книге (для этих случаев существуют БД и СУБД (excel к ним не относиться)).


Цитата:
(sax_ol @ 19:11:2010 - 10:40) *
 
Мы не рассматриваем excel, мы смотрим только как работать с данными.


которые находятся в excele (как не рассматривая оного этого добиться) smile.gif



--------------------
Перейти в начало страницы
 
Цитата Цитировать сообщение
BVS
сообщение 19:11:2010, 13:36
Сообщение #6
Вставить ник
Продвинутый
Иконка группы

Репутация:     2  




Цитата:
(sax_ol @ 19:11:2010 - 11:57) *
 
АДО вот и не надо думать что там за ексель.


А может OLE DB (Зачем мелочиться).


Цитата:
(Роман1Сергеевич @ 18:11:2010 - 12:30) *
 
mmo1:=Excel.Range['A5:J5'];


Судя по этой строчке автор не знает как обращаться с TMemo. А ты его хочешь приобщить к SQL.


Цитата:
(sax_ol @ 19:11:2010 - 11:57) *
 
битву экстрасенсов



Я пользуюсь своим опытом, а вот ты кажется точно телепатией обладаешь - раз уверен в своей ADO по отношению к формату которой даже БД не является.



--------------------
Перейти в начало страницы
 
Цитата Цитировать сообщение
BVS
сообщение 20:11:2010, 05:05
Сообщение #7
Вставить ник
Продвинутый
Иконка группы

Репутация:     2  




Цитата:
(sax_ol @ 19:11:2010 - 16:48) *
 
Всеже по ссылке то сходите.


Вижу что мы с тобой разговариваем на разных языках. У нас с тобой разный уровень (опыт) в программировании.
Зря только сходил на этот скудный источник информации.
Я прекрасно знаю что ADO это всего лишь надстройка для OLE DB (поэтому и написал зачем мелочиться).
Хвать относиться к вопросам как к лабораторным (так никогда не напишешь полностью рабочую версию программы). Надо все таки рассматривать все возможные аспекты и предполагаемые трудности. А то что пользователь прекрасно умеет править Excel файлы всем известно.

Цитата:
(sax_ol @ 19:11:2010 - 11:57) *
 
Тут надо смотреть как "жали".


Как ты думаешь они (пользователи) нажимают эту кнопку?


--------------------
Перейти в начало страницы
 
Цитата Цитировать сообщение
BVS
сообщение 20:11:2010, 11:44
Сообщение #8
Вставить ник
Продвинутый
Иконка группы

Репутация:     2  




Цитата:
(sax_ol @ 20:11:2010 - 13:24) *
 
Ну так и чего вы хотите? А они сам файл удаляют? соединение тоже теряется? оч. интересно...


Они из тьмы редактирования и сохранения действительно могут один раз удалить файл. Но вот сохранение обычная процедура поэтому ее как раз надо рассмотреть (и вам уважаемыйsax_ol тоже).


Цитата:
(sax_ol @ 20:11:2010 - 13:24) *
 
везде доводить до полной универсальности - тупиковый путь.


Видно кто то привык на лабораторных "дурить" преподавателей (сдавая программы которые могут работать только при определенных условиях). А потом пользователи ваши программ начинают повсеместно вспоминать Била Гейтся и глючную винду smile.gif.

Замечу что тема называется [Delphi + Excel], а не [ADO+ Excel] .


--------------------
Перейти в начало страницы
 
Цитата Цитировать сообщение
BVS
сообщение 21:11:2010, 15:33
Сообщение #9
Вставить ник
Продвинутый
Иконка группы

Репутация:     2  




Цитата:
(sax_ol @ 20:11:2010 - 17:48) *
 
При чем тут процедура сохранения к конекшену?



Цитата:
(BVS @ 18:11:2010 - 16:46) *
 
если редактировать книгу с помощью Excel-я доступ через Ado может и пропасть :-(


А сохранение как раз и завершает редактирование.


Цитата:
(sax_ol @ 20:11:2010 - 17:48) *
 
АДО это одна из технологий которую поддерживает делфи, ну и она умеет работать с Excel. Опять таки про что вы?



Цитата:
(BVS @ 19:11:2010 - 08:18) *
 
ADO работает с книгой как с базой данных. Иногда при сохранении книги меняется структура листа и к нему становиться невозможно обратиться как к таблице. (По крайней мере в 2003 офисе это точно было, в 2007 может и исправили (хотя я сомневаюсь: все таки excel дает гораздо больше возможности чем просто таблица в БД, и соответственно обычных методов работы с таблицами через SQL запросов для него недостаточно).



Цитата:
(sax_ol @ 20:11:2010 - 17:48) *
 
Добавлено: Про Била нашего Гейтса тоже не понятно к чему. При чем тут лабораторные, при чем тут дурить. вощем какойто поток сознания.


А затем что пользователь вашей чудо программы которая считывает данные с excel листа посредством SQL запросов в один прекрасный день (когда пользователь наплюя на вашу программулину отредактирует этот файл в офисе (на что он имеет полное право)и сохраня изменения) выдаст что доступ к файлу (который продолжает нормально читаться в офисе) невозможен. Интересно что он в этот момент подумает, будет делать, что и кого вспоминать, и какие инструкции разработчик данного продукта ему даст?


Цитата:
(sax_ol @ 20:11:2010 - 17:48) *
 
так сразу отбросить АДО? кошмар...



Цитата:
(BVS @ 18:11:2010 - 16:46) *
 
ADO хорошо когда надо создать побыстрому книгу и скинуть в нее таблицы.




Насчет ссылки на темы я имел ввиду что для автора желательно рассмотреть все возможные способы работы с Excelем а не только с ado.

PS: Преимущество ADO над OLE ты так еще и не показал. :-(. И к тому же заставляешь меня повторяться - что говорит о невнимательности (мне достаточно уже отвечать своими же цитатами).
Преимущество же OLE над ADO (в рамках Excelя) я уже показывал

Цитата:
(BVS @ 19:11:2010 - 08:18) *
 
Ведь OLE использует специальные интерфейсы для работы с excel`ем. И его функциональности вполне достаточно для полной работы с excel`ем (а не только на уровне БД).


И вы с этим согласились

Цитата:
(sax_ol @ 19:11:2010 - 10:40) *
 
Цитата:

(BVS @ 19:11:2010 - 07:18) *



И его функциональности вполне достаточно для полной работы с excel`ем (а не только на уровне БД).


Его там даже много чем требуется




А некоторые фразы мне вообще не понятны
Цитата:
(sax_ol @ 19:11:2010 - 10:40) *
 
Мы не рассматриваем excel, мы смотрим только как работать с данными.

-как она соотноситься с данной темой?

Цитата:
(sax_ol @ 20:11:2010 - 13:24) *
 
везде доводить до полной универсальности - тупиковый путь.

- тупик может образоваться если использовать ADO и excel, а Ole - выход из этого тупика. Только некоторые его и видеть не хотят.


--------------------
Перейти в начало страницы
 
Цитата Цитировать сообщение
BVS
сообщение 22:11:2010, 06:46
Сообщение #10
Вставить ник
Продвинутый
Иконка группы

Репутация:     2  




Цитата:
(sax_ol @ 21:11:2010 - 23:12) *
 
в один момент могут вдруг взять и открыть базу в любом соотв. редакторе, отредактировать, сохранить и потом наморщить лоб и с изумлением спрашивать у разработчиков - "а какого собственно все перестало работать?".


Если открыть БД в соответствующем редакторе (и именно в соответствующем для данной БД) то все будет работать как и прежде. Вопросы же взаимосвязоности таблиц (который может нарушить редактор) я не рассматриваю т.к. для этого обычно используется СУБД с определенным доступом к файлам с данными, и к этим файлам трудно добраться (если ты конечно не системный администратор на сервере, но с них спрос совсем другой).
Что касается Excelя то для него соответствующий редактор это офис.


Цитата:
(sax_ol @ 21:11:2010 - 23:12) *
 
Если пользователь полез туда куда не следует то это его личная проблемма и к проблеммам разработки не имеет никакого отношения.


Отредактировать xls файл в офисе никак нельзя назвать "не следует". К тому же этот файл уже есть (следует из задачи) интересно откуда он взялся smile.gif. Отсранение от проблемы путем фразы "проблеммам разработки не имеет никакого отношения." характеризует программиста в глазах у клиента не очень хорошо.


Цитата:
(sax_ol @ 21:11:2010 - 23:12) *
 
В данном случае, имея ту информацию, которую имеем, я считаю что это АДО. С адо я это решу в пол дня, с оле раза в 2 дольше. Просто тупо на писанину.


Мне хватило пол часа (и то только потому что давно не работал с Ole) на написание этого кода:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComObj, StdCtrls, Buttons, Mask;

type
  TForm1 = class(TForm)
    mmo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    meStroka: TMaskEdit;  //номер редактируемой строки
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
    procedure GetStroka(i: integer);
    procedure SetStroka(i: integer);
  public
    { Public declarations }
    Excel: Variant;
    sh, w: Variant;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Excel:=CreateOleObject('Excel.Application');
w:= Excel.Workbooks.open['d:\temp\1.xls'];
Excel.visible:= true;
sh:= w.sheets[1];

end;

procedure TForm1.GetStroka(i: integer);
var
  j: integer;
begin
with mmo1.Lines do begin
  BeginUpdate;
  Clear;
  for j:= 1 to 10 do
    Add(VarToStr(sh.Cells[i, j]));
  EndUpdate;
end;

end;

procedure TForm1.SetStroka(i: integer);
var
  j: integer;
  s: string;
begin

with mmo1.Lines do begin
  for j:= 1 to 10 do
    sh.Cells[i, j]:= Strings[j-1];
end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin //чтение инф. с xls файла
  GetStroka(StrToInt(meStroka.Text));
end;

procedure TForm1.Button3Click(Sender: TObject);
begin //Закрытие xls файла
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin    //Для внесения отредактированной инф в xsl файл.
  SetStroka(StrToInt(meStroka.Text));
end;

end.

При этом я решил след. задачи:
Цитата:
(Роман1Сергеевич @ 18:11:2010 - 12:30) *
 
Мне необходимо просматривать каждого человека по-очереди



Цитата:
(Роман1Сергеевич @ 18:11:2010 - 12:30) *
 
если необходимо изменять одно из этих полей



Цитата:
(Роман1Сергеевич @ 18:11:2010 - 12:30) *
 
попытался в поле мемо




Цитата:
(sax_ol @ 21:11:2010 - 23:12) *
 
Плюс адо мне дает тучу возможноствей запростотак, это и поис и быстрое позиционирование на нужные данные, и унифицированный интерфейс пользователя, использование транзакций, и тыпы

- А зачем (разве автор собрался писать БД)

Цитата:
(Роман1Сергеевич @ 18:11:2010 - 12:30) *
 
Есть Excel файл 97-2003 мне в нём забита инфа с A1 до J18

- всего то 18 строк.

Сообщение отредактировал BVS - 22:11:2010, 06:49


--------------------
Перейти в начало страницы
 
Цитата Цитировать сообщение
BVS
сообщение 22:11:2010, 11:37
Сообщение #11
Вставить ник
Продвинутый
Иконка группы

Репутация:     2  




Цитата:
(sax_ol @ 22:11:2010 - 12:56) *
 
С какого перепугу? можно не только данные, можно и структуру похерить, да что там структура, данные тоже не абы как туда занесены. Так что мимо.


читаете не внимательно (может хватит).
Цитата:
(BVS @ 22:11:2010 - 09:46) *
 
Вопросы же взаимосвязоности таблиц (который может нарушить редактор) я не рассматриваю т.к. для этого обычно используется СУБД с определенным доступом к файлам с данными, и к этим файлам трудно добраться (если ты конечно не системный администратор на сервере, но с них спрос совсем другой).


Для тех кто в танке объясню на примере. Для БД в формате mdb существует специализированный редактор под названием Microsoft Access, как вы думает что будет с этим файлом если его там отредактировать. А какая ситуация с xls?

Цитата:
(sax_ol @ 22:11:2010 - 12:56) *
 
Как раз таки оно и есть. Человек вмешивается в логику программы. А тут уж как повезет. если он с пониманием, то никаких потерь если без мозгов то это засада. Не важно каой это файл офиса или еще чего, вот к примеру ини файлы, xml файлы и т.п. легко можно редактировать блокнотом, но а там как повезет.


Что было раньше "курица или яйцо"? В нашем случае файл появился раньше программы (и наша задача написать программу для этого файла (а никак не наоборот). А если структура файла нам не подойдет? Что поотрывать руки заказчику? А если у заказчика нет мозгов - то пусть платит больше подберем любой вариант (даже самый трудоемкий). Мне интересно xml файлы вы тоже через ado запускаете? Я лично предпочитаю пользоваться парсерами smile.gif. Особенно мне интересно как ini файла с ado сочетаются?.

Цитата:
(sax_ol @ 22:11:2010 - 12:56) *
 
И что оно делает? на такое с адо ваще ничего писать не надо и делать при этом будет гораздо больше, нежели то что вы перечислили. андерстенд? smile.gif


Я уже отвечал что она делает smile.gif Будте внимательней. То что с ado писать ничего не надо я заметил - ведь вашего варианта еще не было smile.gif


Цитата:
(sax_ol @ 22:11:2010 - 12:56) *
 
А не все ли равно? хоть с луны, еще раз, что это меняет?


Скоко раз напоминать прописную истину что EXCEL может хранить таблицы БД но необязательно в виде таблицы БД, т.е. он не относится к формату БД и поэтому к нему не всегда можно обратиться через SQL (разве это для ADO нечиго не меняет?)


Цитата:
(sax_ol @ 22:11:2010 - 13:11) *
 
Вот мы лет эдак 6+ назад делали систему, которая закачивала данные из филиалов в консолидированную бд. ДАнные шли разного формата, и эксель и пдф и csv и ... так вот всем были спущены указания как формировать эти самые данные, по вашей логике, всяк мог накосячить чего угодно, а мы должны угадать чего накосячили?

-несколько форматов + можно предугадать что есть и множество вариантов одного формата. Т. е. совсем другой уровень сложность чем то что запросил автор (существует один вариант (к сожалению незвестный) одного известного формата (excel)). В твоем случае однозначно приводит к одному стандарту и никаких отклонений от оного. В случае с автором тратить время на разработку стандартов и инструкций к ним - просто глупо.



Цитата:
(sax_ol @ 22:11:2010 - 13:11) *
 
Ешкин кот... ужеж говорили, атору надо работать с данными

- это ты говоришь. А автор попросил помочь ему разобраться как работать с Excelем через delphi. Будь пожалуйста повнимательней и обращай внимание хотябы на название темы.



Цитата:
(sax_ol @ 22:11:2010 - 13:11) *
 
и чем более эффективную технологию можно применить тем лучше. Изменятся входные данные - условия, изменится и подход.

- Не зная что находится в файле (а может данные уже поменялись, а не такие как ты себе представляешь). И что переписывать усю программу, или достаточно будет разбавить ее несколькими процедурами?.


Цитата:
(sax_ol @ 22:11:2010 - 13:11) *
 
фигачте чыста по формату

-бессмысленный подход. Например: у клиента поменяется версия офиса, а вместе с ней и формат файла. Если для Ole это будет по боку то для самостоятельного разбора файла придется переписывать программу (а для этого придется изучить еще и новую структуру xls файла).

Цитата:
(sax_ol @ 20:11:2010 - 13:24) *
 
доводить до полной универсальности - тупиковый путь



Цитата:
(sax_ol @ 22:11:2010 - 13:11) *
 
универсальности нет предела. оле и не снилось.


Уважаемый Вас не понять. (Вы уже не помните что и сами писали smile.gif ).


--------------------
Перейти в начало страницы
 
Цитата Цитировать сообщение
BVS
сообщение 22:11:2010, 14:01
Сообщение #12
Вставить ник
Продвинутый
Иконка группы

Репутация:     2  




Цитата:
(sax_ol @ 22:11:2010 - 15:22) *
 
Да плевать на файлы


Достойный ответ на поставленную задачу.


Цитата:
(sax_ol @ 22:11:2010 - 15:22) *
 
Прицепились к офису шмофису. да чхать на офисы

Еще раз как называется тема?. Или excel у Вас вышел из состава этого продукта?


Цитата:
(sax_ol @ 22:11:2010 - 15:22) *
 
Важно что есть логика программы и вмешиватся туда пользователь не имеет право

логики программы (так как программа еще не написана) еще у автора нет, а вот вмешиваться уже есть куда smile.gif. И как это можно объяснить?


Цитата:
(sax_ol @ 22:11:2010 - 15:22) *
 
устал реально... smile.gif

я тоже sad.gif


Цитата:
(sax_ol @ 22:11:2010 - 15:22) *
 
слово эффективно вам что нить говорит

ваш код в студию (посмотрю насколько он эффективный)


Цитата:
(sax_ol @ 22:11:2010 - 15:22) *
 
форматы, РАЗНЫЕ, но четко формализованные

я не говорил что формат один. (Внимательность) Я сказал что стандарт один. А форматов подчеркивал что несколько. (Хотя для Вас это наверно одно и тоже sad.gif.


Цитата:
(sax_ol @ 22:11:2010 - 15:22) *
 
Последний раз - делфи не исключает работу с адо, в рамках работы с экселем - ну проще простого ведь

если просто то покажите работоспособную программу.


Цитата:
(sax_ol @ 22:11:2010 - 15:22) *
 
автор просит

Цитата:

(Роман1Сергеевич @ 18:11:2010 - 11:30) *



Мне необходимо просматривать каждого человека по-очереди и если необходимо изменять одно из этих полей.


, и далее
Цитата:

(sax_ol @ 18:11:2010 - 11:44) *



А то до этого встречал получается только ОЛЕ.


, для тех кто на танке - автор говорит лишь о том что он не знает как и находил только с оле. Все больше переводчиком не буду.

ado выбирает сразу все строки заданные в SQL запросе, а автор просить пройтись (остановившись на каждой (т. е. выбрав человека)) по строкам (Ole это позволяет). Или предлагаеш на каждую строку (человека) писать отдельный запрос?


Цитата:
(sax_ol @ 22:11:2010 - 15:22) *
 
Она ваще нихрена не делает

Уважаемый не умеет читать код?


Цитата:
(sax_ol @ 22:11:2010 - 15:22) *
 
В топике автор указал чего там есть а чего нет, про то что что то меняется ничего не сказанно. Еще раз спрашиваю, у вас с авторам астрал?

Автор указывал форматы хранения данных, как они расположены (по центру ячейки, справа, слева), какого шрифта; какова разметка листа. Какой у него вид? и многое другое. Был бы астрал было гораздо проще sad.gif


Цитата:
(sax_ol @ 22:11:2010 - 15:22) *
 
Или вы настолько внимательный что не всем доступно?

судя по вашим ответам да.


Цитата:
(sax_ol @ 22:11:2010 - 15:22) *
 
Да неужели? вы ваще с офисным оле дело то имели?

имел. И могу смело утверждать что Excel.Application будет работать со всеми версиями микрософт офиса

Цитата:
(sax_ol @ 22:11:2010 - 15:22) *
 
Да плевать что там может быть, хоть сферический конь.

Вам - да. ADO - нет smile.gif. Что и пытаюсь вам многоуважаемый доказать.


--------------------
Перейти в начало страницы
 
Цитата Цитировать сообщение
BVS
сообщение 22:11:2010, 15:01
Сообщение #13
Вставить ник
Продвинутый
Иконка группы

Репутация:     2  




Цитата:
(sax_ol @ 22:11:2010 - 17:29) *
 
Ну хорошо, если так уж не в терпеж, делайте следующее, открываете делфи, новый проект, на форму бросаете:
TADOConnection, TADOTable, TDBDataGrid, TDBNavigator, TDataSource


Вижу что мне здесь больше делать нечего. Задача в рамках которые указал автор - Вами не решена. Я в Экселе проще смогу обработать данные. Зачем мне еще писать программу которая будет выводить табличку smile.gif.
Автор же просил хотябы использовать tmemo. А где выбор по Человеку?


Цитата:
(sax_ol @ 22:11:2010 - 17:29) *
 
без комментариев...

А зря. Назови хотя бы одну версию офиса где он не заработает?


Цитата:
(sax_ol @ 22:11:2010 - 17:29) *
 
Где он указывал про центры?

Прошу у Вас многоуважаемый прощение - забыл поставить знак "?". Именно что автор вскользь прошелся по файлику.



Цитата:
(sax_ol @ 22:11:2010 - 17:29) *
 
даже видеть не хочу

тем более в нем разбираться. Теперь мне Ваша невнимательность понятна. Насчет русского языка я лучше промолчу smile.gif

Сообщение отредактировал BVS - 22:11:2010, 15:08


--------------------
Перейти в начало страницы
 
Цитата Цитировать сообщение
BVS
сообщение 22:11:2010, 15:36
Сообщение #14
Вставить ник
Продвинутый
Иконка группы

Репутация:     2  




Цитата:
(sax_ol @ 22:11:2010 - 18:13) *
 
Любая, тут не от офиса зависит а от версии сом-а

- Вот именно. А версии COMа ставиться вместе с офисом. И соответственно какое дело Excel.Application становиться до версии (ведь в любом случае будет стоять нужная). Или Вы многоуважаемый плохо понимаете принцип работы OLE.

Цитата:
(sax_ol @ 22:11:2010 - 18:13) *
 
Это вы про свой код

- нет это я про редактор smile.gif
Что до моего кода то это набросок (притом польностью удовл. автора в рамках его задачи (будем надеется что он правильно ее написал))


Цитата:
(sax_ol @ 22:11:2010 - 18:13) *
 
То вы говорите что поиск не нужет то выбор по человеку

Автор утверждал что в каждой строки содержаться данные по человеку и просматривать нужно по очереди по человеку (о никаком поиске и речи не было). А Вы просто сразу выдали весь файл smile.gif.


Цитата:
(sax_ol @ 22:11:2010 - 18:13) *
 
В чем разбираться? одного этого:
Цитата:

(BVS @ 22:11:2010 - 08:46) *



Excel.visible:= true;


хватило, чтобы дальше не смотреть, ибо неначто.

- а что, для отладке очень даже удобно. Повторяю это набросок, а не готовое решение.


--------------------
Перейти в начало страницы
 
Цитата Цитировать сообщение
BVS
сообщение 22:11:2010, 16:08
Сообщение #15
Вставить ник
Продвинутый
Иконка группы

Репутация:     2  




Цитата:
(sax_ol @ 22:11:2010 - 18:52) *
 
все - оле... оле оле оле. smile.gif

Учи принципы работы с COM объектами. От перстановки офиса программу переписывать не нужно. Хотя пока Многоуважаемый не узнает как работают COM объекты он про это и знать не будет. smile.gif


Цитата:
(sax_ol @ 22:11:2010 - 18:52) *
 
10 там колонок или нет

- у автора 10 внимательно прочитайте задачу sad.gif.


Цитата:
(sax_ol @ 22:11:2010 - 18:52) *
 
а с адо мне в принципе может быть фиалетово

я это заметил sad.gif. (ты все еще не ответил к xml и ini файлам тоже обращаеся через ADO?).


Цитата:
(sax_ol @ 22:11:2010 - 18:52) *
 
и будет у вас строго по очереди

- автору это скажи (задачу он иначе ставил) sad.gif.


Цитата:
(sax_ol @ 22:11:2010 - 18:52) *
 
грид он тоже

Открываешь в редакторе - тоже грид только писать ничего не надо и функциональности поболее sad.gif.



--------------------
Перейти в начало страницы
 
Цитата Цитировать сообщение
Роман1Сергеевич
сообщение 23:11:2010, 08:20
Сообщение #16
Вставить ник
Новенький
Иконка группы

Репутация:     0  



Ничего себе вы тут расписали smile.gif
Я в четверг начал делать через АДО, пока что-то получается. Почему так долго? - спросите вы. Потому как тяжело дается (SQL чтобы вспомнить что такое пришлось конспект перечиты sad.gif Как упрусь во что-либо покажу что не получается. Вот что у меня на данный момент:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls;

type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  id_count,id:integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
   try
    id:=1;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('SELECT * FROM [Лист1$]');
    ADOQuery1.Active:=True;
    id_count:=ADOQuery1.RecordCount+1;
   except
    on e:Exception do
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   try
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('INSERT INTO [Лист1$] (ФИО,Адрес,id) VALUES(''Иванов Иван Иванович'',5,'+IntToStr(id_count)+')');
    id_count:=id_count+1;
    ADOQuery1.ExecSQL;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('SELECT * FROM [Лист1$]');
    ADOQuery1.Active:=True;
   except
    on e:Exception do
   end;
end;

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
   id:=ADOQuery1.Fields.Fields[1].AsInteger;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
   try
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('SELECT * FROM [Лист1$] WHERE ФИО LIKE ''%Иванов%''');
    ADOQuery1.Active:=True;
   except
    on e:Exception do
   end;
end;

end.
Перейти в начало страницы
 
Цитата Цитировать сообщение

Ссылка на тему:
BBCode: 
HTML:      
Тема закрытаStart new topic

Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
Нет новых Закреплено: В теме есть приложенияпро Excel
ссылка на раздел
16 lmike 5 672 28:07:2014 - 16:32 Посл. сообщение: lmike
Нет новых сообщений Delphi: Кнопки, Закрепление Объектов В Определенной Области Формы, Сох
6 Artosiym 84 23:07:2014 - 16:33 Посл. сообщение: -master-
Нет новых сообщений График В Delphi
2 ssss12 162 20:07:2014 - 08:59 Посл. сообщение: -master-
Нет новых сообщений Разгруппировка Строк В Excel Средствами Openoffice(vba)
Разгруппировка строк в Excel средствами OpenOffice(VBA)
0 Manticor 40 14:07:2014 - 13:24 Посл. сообщение: Manticor
Нет новых сообщений Программист Delphi (дистанционно)
Разработчик Delphi 2007 для удаленной работы
0 NeuroSystem 132 2:07:2014 - 10:46 Посл. сообщение: NeuroSystem

 



1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50
51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100
101|102|103|104|105|106|107|108|109|110|111|112|113|114|115|116|117|118|119|120|121|122|123|124|125|126|127|128|129|130|131|132|133|134|135|136|137|138|139|140|141|142|143|144|145|146|147|148|149
150|151|152|153|154|155|156|157|158|159|160|161|162|163|164|165|166|167|168|169|170|171|172|173|174|175|176|177|178|179|180|181|182|183|184|185|186|187|188|189|190|191|192|193|194|195|196|197|198|199
200|201|202|203|204|205|206|207|208|209|210|211|212|213|214|215|216|217|218|219|220|221|222|223|224|225|226|