Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизDelphi+Excel Найти похожие ветки
← →
Тимохов © (2004-04-06 15:47) [0]Есть следующий упрощенный код:
procedure TForm_Tests.Button6Click(Sender: TObject);
var
v: olevariant;
begin
v := CreateOleObject("Excel.Application");
v.Workbooks.Open(FileName := "d:\0\123.xls");
v.ActiveWorkBook.ActiveSheet.range["a1"] := "asdfg";
v.ActiveWorkBook.SaveAs(FileName := "d:\0\0.xls");
v.Visible := True;
v := Unassigned;
end;
В результате открывается некий шиблон, заполнается одна клетка, "сохраняется как" и показывается на экране. Все вроде как работает.
Далее наблюдается интересный эффект: если не закрывая файла excel в Windows Commandere пойти и нажать enter на файле "d:\0\0.xls", то excel вообще пропадает - его можно найти и убить только в диспетчере задач.
В ходе опыта было установлено, что такого бага нет (т.е. после нажатия enter на "d:\0\0.xls" как и положено все показывается на экране), если v.Visible := True поставить до v.Workbooks.Open(FileName := "d:\0\123.xls").
Офис 2000. Проверял на хр и на 2003 - там все тоже самое.
Как вы думаете, в чем может быть дело?
← →
Тимохов © (2004-04-06 15:52) [1]Блин, обнаружил еще факт не понятной природы.
Если сделать так
1. Выполнить указанный код
2. через windows commander открыть ДРУГОЙ факл excel
3. через windows commander открыть d:\0\0.xls
То также все работает...
:(((
До чего же гловищная это программа, excel, почему же народ ее так любит :(((((
← →
Тимохов © (2004-04-09 12:34) [2]Сообщаю ответ на свой вопрос - может кому будет полезно.
Надо написать так.procedure TForm_Tests.Button6Click(Sender: TObject);
var
v: olevariant;
begin
v := CreateOleObject("Excel.Application");
v.Workbooks.Open(FileName := "d:\0\123.xls");
v.ActiveWorkBook.ActiveSheet.range["a1"] := "asdfg";
v.ActiveWorkBook.SaveAs(FileName := "d:\0\0.xls");
v.Visible := True;
v.UserControl := True;
v := Unassigned;
end;
Ответ был получен тут http://www.delphikingdom.com/asp/answer.asp?IDAnswer=21646
← →
Leonid © (2004-04-09 13:35) [3]А что такое UserControl ?
← →
Гаврила (2004-04-09 13:43) [4]УХ
а может и у меня теперь заработает...
я по аналогичным проблемам с word бьюсь уже достаточно давно.
сапожники млин...
← →
Тимохов © (2004-04-09 13:48) [5]
> Leonid © (09.04.04 13:35) [3]
Хелп не судьба почитать? :))))))
> Гаврила (09.04.04 13:43) [4]
Да блин OLE+Офис дофига недокументированных фишек. Когда справишься, не можешь понять почему работает...
← →
Гаврила (2004-04-09 13:59) [6]>>Тимохов © (09.04.04 13:48) [5]
Фишка то в принципе документированная, хотя такое поведение в справке не описано.
Вообще OLE + Офис реализовано через Ж. Приычем через такую Ж, что вообще редко когда такое безобразие увидишь :-(((
← →
Тимохов © (2004-04-09 14:06) [7]
> Гаврила (09.04.04 13:59) [6]
точно, полная Ж.
Мне на вопрос ответил тот же человек, котрый писал про Ж в русском excel - пропрос был про форматы. В принципе эту статью можно найти на королевстве (пойти по линку, и начать все материалы автора).
Мое решение сейчас такое - ole для обратной совместимости, все новое делаю без всяких шаблонов - сразу в xml. Правда, тогда есть ограничение - офис 2002, xp, 2003.
← →
YurikGl © (2004-04-09 14:28) [8]Работаю через TExcelApplication, подобных проблем не наблюдаю.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c