Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Быстрое заполнение Excel-я. Как?


DevilDevil ©   (2007-06-18 17:59:00) 

Столкнулся с проблемой медленного заполнения строк Excel-я, даже если не изменять размеры/цвета/шрифты.

Не подскажите более быстрый способ?

Заранее спасибо.


DevilDevil   (2007-06-21 10:13:00) [1]

мда.

Данные в моей таблице обновляются.
Если пользователь экпортировал часть таблицы в Excel, то соответственно в Excel-е эта часть должна обновляться.

Вопрос открыт:

Как мне наиболее правильно отловить момент закрытия Excel-я пользователем (не прибегая к try...except) ?


YurikGL   (2007-06-20 21:11:00) [2]


> Мне нужно будет периодически обновлять данные в Excel-e.
> ..

Ужас какой... пользователь сам должен командовать "обновить данные"... я бы убил создателя программы, которая вдруг полезет в Excel который я открыл и будет там что-то делать.


DevilDevil   (2007-06-20 16:50:00) [3]

Вот какой вопрос...

Мне нужно будет периодически обновлять данные в Excel-e...

Как мне наиболее правильно отловить момент закрытия Excel-я пользователем (не прибегая к try...except) ?


Anatoly Podgoretsky   (2007-06-19 14:58:00) [4]

> DevilDevil  (19.06.2007 14:21:16)  [16]

Я не могу ничего сказать о книге, про которую я вообще ничего не слышал.
Но по поводу быстрого заполнения на КД вполне адекватная информация.
Мне мало дало лишь потому что меня OLE не интересовал, а там все примеры по нему,
интересовал исключительно COM и DOM


DevilDevil   (2007-06-19 14:21:00) [5]

> Anatoly Podgoretsky ©   (19.06.07 14:00) [15]

А я начинал работу с Экселем со чтения книги Василия Корнякова. Она кстати сейчас рядом открытая лежит.

Просто там не описано "Быстрое заполнение Excel-я"


Anatoly Podgoretsky   (2007-06-19 14:00:00) [6]

> DevilDevil  (19.06.2007 13:49:14)  [14]

Я начинал работу с Экселем со чтения статей с этого сайта и они дали мне нормальный начальный толчок, правда маленький.
И поиск в русском сегменте Интернет показал, что лучше этих статей ничего нет.
Более качественная информация только у Микрософт, но как старт пойдет и с КД


DevilDevil   (2007-06-19 13:49:00) [7]

> Anatoly Podgoretsky ©   (19.06.07 13:40) [12]

Анатолий, поверьте, их действительно очень много.

> Amoeba ©   (19.06.07 13:40) [13]

Спасибо, вопрос скорее всего закрыт.

Спасибо всем участникам.


Amoeba   (2007-06-19 13:40:00) [8]


> DevilDevil ©   (19.06.07 13:30) [11]
>
> там дофига статей. Какую именно?
>

"По волнам интеграции"


Anatoly Podgoretsky   (2007-06-19 13:40:00) [9]

А ты не все читай, а только по интеграции с экселем и их число будет достаточно малым, меньше 10


DevilDevil   (2007-06-19 13:30:00) [10]

там дофига статей. Какую именно?


Anatoly Podgoretsky   (2007-06-19 12:57:00) [11]

Ты статью прочитал, там есть нужные тебе ответы.


DevilDevil   (2007-06-19 12:27:00) [12]

почитал... честно говоря остались вопросы.

Пожалуйста, ответте на 7, вопросы лёгкие, вы мне существенно облегчите жизнь.

Заранее спасибо.


jack128   (2007-06-18 22:14:00) [13]

DevilDevil ©   (18.06.07 19:02) [7]
почитай статейку на королевстве дельфи (delphikingdom.ru) многие вопросы отпадут...


DevilDevil   (2007-06-18 19:02:00) [14]

хммм. недопонял.

1) x = xx, а y = yy ?
2) как заполнять ArrayV ?

3) как можно определить, закрылся ли Excel, с которым мы только что работали ?


fdsa   (2007-06-18 18:41:00) [15]

на делфи так:
ArrayV := VarArrayCreate([1, x, 1, y],
                              VarVariant);
заполняем ArrayV

затем
 Cell1 := WorkBook.WorkSheets[1].Cells[BeginRow, BeginCol];
 Cell2 := WorkBook.WorkSheets[1].Cells[BeginRow + xx, BeginCol +yy];
 Rng := WorkBook.WorkSheets[1].Range[Cell1, Cell2];
 Rng.Value := ArrayV;

З.Ы.
Cell1, Cell2, Rng, ArrayV : Variant;


DevilDevil   (2007-06-18 18:35:00) [16]

> fdsa   (18.06.07 18:28) [4]
Thanks

Кто еще? Я что то слышал про массивы вариантов


fdsa   (2007-06-18 18:28:00) [17]

перед занесением данных в ексель делай
ExcelApp.Application.EnableEvents := false;
после занесения
ExcelApp.Application.EnableEvents := true;
это несколько ускорит вывод информации.


DevilDevil   (2007-06-18 18:26:00) [18]

ну т.е.:
  Variant XLCell = Row.OlePropertyGet(i);


DevilDevil   (2007-06-18 18:25:00) [19]

Ну примерно так:

  Variant  Row = Sheet.OlePropertyGet("Rows", j);

  for (int i = 1; i <= ColsWidth;  i++)
  {
     Variant XLCell = Sheet.OlePropertyGet("Cells", j, i);
     XLCell.OlePropertySet("Value", WideString(СТРОКОВАЯ ПЕРЕМЕННАЯ));
  }


P.S. это Builder :)


Style   (2007-06-18 18:13:00) [20]

заполнение строк excel-я - понятие абстрактное

ты экспорт данных делаешь чтоле???

Как ты с ним пытаешся работать?


Наверх

Титульная страница Поиск, карта сайта Написать письмо