Модераторы: MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WordApplication, ExcelApplication, Работа с Word и Excel 
:(
    Опции темы
Beltar
Дата 6.6.2012, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 1
Всего: 7



Цитата

Ребята, не выгружается Excel из памяти


Я где-то раньше для закрытия рекомендовал в TExcelApplication.onWorkbookBeforeClose

Код

procedure TfmReports.EAWorkbookBeforeClose(ASender: TObject;
  const Wb: _Workbook; var Cancel: WordBool);
begin
case Ver of
  8..10:EA.Disconnect;
end;
end;


По крайней мере у меня с версиями до 11-ой (ака 2003) работает корректно только так.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Albinos_x
Дата 14.7.2012, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



Цитата(Juju @  6.6.2012,  14:25 Найти цитируемый пост)
Данкинг: код Pascal/Delphi1:XL:=unassigned;highlightSyntax('delphi_jM4ZGI','delphi'); - ошибка: Incompatible type TExcelApplication and Variant


какого типа у тебя XL?



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
reikjavik
Дата 16.11.2012, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Онлайн



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 2.5.2012
Где: Алматы

Репутация: нет
Всего: нет



Здравствуйте! У меня такой вот вопрос мне нужно разделить таблицы которые переходят на следующую страницу. и после разделения написать между ними текст "продолжение таблицы"! Подключаюсь через CreateOLEObject('Word.Application')
Делаю так: 
Код

pr:= worapp.selection;
TabCount := pr.Tables.Count;
    for tabnum := 1 to TabCount do
    Begin
    // Доступ к таблице
    Table := pr.Tables.Item(tabnum);
    // Получить размерность таблицы
    iRows := Table.Rows.Count;
    jCols := Table.Columns.Count;

    // Цикл по ячейкам

    for i := 1 to iRows do
   strnum := Table.Cell(1,1).Range.Information[Page];
    begin
         strnum1:= Table.Cell(i,1).Range.Information[Page];
         if strnum < strnum1 then
         Begin
         Table.Cell(i,1).Range.InsertBreak(Break1);
         wdrange:=Table.Cell(i,1).Range.MoveDown(wdLine1, 2);
         wdRange.TypeText('Продолжение таблицы -'+inttostr(tabnum)+#13);
         // вставляем текст

          // снимаем выделение
          strnum:= strnum1;
         TabCount:= pr.Tables.Count;
         break;
         End;

    end;


Вот со вставкой текста проблемы подскажите пожалуйста! 
PM MAIL   Вверх
AntonBunin
Дата 15.5.2013, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.8.2008

Репутация: нет
Всего: нет



Писал программу с использованием ТWordApplication на одном компьютере, необходимо продолжить работу на другом, в упор не помню как подключал ТWordApplication в проект. Ткните носом где освежить сию процедуру.
Спасибо.
PM MAIL ICQ   Вверх
AntonBunin
Дата 16.5.2013, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.8.2008

Репутация: нет
Всего: нет



Живых нет!?
PM MAIL ICQ   Вверх
gesper
Дата 17.6.2013, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


"Shарфик"
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 23.2.2005

Репутация: нет
Всего: 2



Компонент найти фильтром через инспектор, нет?
--------------------
...И приколется обломившийся и oбломится приколовшийся...
PM MAIL   Вверх
Данкинг
Дата 18.6.2013, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 5
Всего: 130



Цитата(AntonBunin @  15.5.2013,  22:01 Найти цитируемый пост)
подключал ТWordApplication в проект. 

Вкладка "servers" вроде как.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Albinos_x
Дата 23.7.2013, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



AntonBunin

для XE2 : "Project" -> "Options..." -> "Packages" -> поставить галочку напротив Embarcadero delphi Office Xp sercers Package

Добавлено через 3 минуты и 17 секунд
прошу прощения, соврал,
галка на против "microsoft office xp sample automation server wrapper component"


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Beltar
Дата 24.2.2014, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 1
Всего: 7



Внезапно встал вопрос. Excel 2003. По коду часто встречаются куски вроде:

Код

  s:=IntToStr(Row);
  Range:=EWSheet.Range['A'+s,'Z'+s];
  Range.VerticalAlignment:=xlTop;


Все это прекрасно работало годами, но сейчас вот принесли ТЗ на доработку и выяснилось, что установка выравнивания стала падать. Именно у меня. Кто-нить сталкивался?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
mr_tg
Дата 3.3.2014, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 79
Регистрация: 29.3.2008

Репутация: нет
Всего: нет



Здравствуйте уважаемые знатоки, извините если я повторяюсь (или невнимательно смотрел, но я не нашёл)
  
Код

  Screen.Cursor:=crHourGlass;
    excel:=CreateOleObject('Excel.Application');
    excel.sheetsinnewworkbook:=1;
    excel.workbooks.add;
    sheet:=excel.workbooks[1].sheets[1];
    range:=sheet.columns;
    range.verticalalignment:=1;
    range.wraptext:=2;
    range.columns[1].horizontalalignment:=1;
    Range:=Sheet.Range[Sheet.Cells[1, 1], Sheet.Cells[1, 26]];
    Range.Merge;
    range.columns[1].horizontalalignment:=2;
    Range.Font.Size:=8;
    Sheet.Cells[1, 1]:='ФФФФФФФФФФФФ';
       for i:=0 to Form1.ADOQuery1.RecordCount-1 do
       begin   
….     
         for j:=1 to 86 do
           begin
            k:=i+2;
….
            r:=Form1.ADOQuery1.Fields.FieldByNumber(j).AsString;
            Sheet.Cells[k, j].NumberFormat:=r; 
….
           end;
       end;

        excel.visible:=true;
   Screen.Cursor:=crDefault;

1)    Как можно прогроммно создать, автоматом записать на excel потом сохранить в память допустим с именем сегодняшней даты. Без вмешательство юзера. (создать и созранить как то получается вот тепьер хочется записать)
2)    Когда ListBox1.Items.Count  больше 10000 строк (вобше большие строки) программа долга экспортирует. Нельзя её оптимизировать так что бы экспорт
3)     Если можно примерчик покажите ПЛС заране СПС
PM MAIL   Вверх
Данкинг
Дата 3.3.2014, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 5
Всего: 130



Цитата(mr_tg @  3.3.2014,  20:44 Найти цитируемый пост)
в память допустим с именем сегодняшней даты. 

Функция DATE() же есть.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
mr_tg
Дата 4.3.2014, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 79
Регистрация: 29.3.2008

Репутация: нет
Всего: нет



Данкинг спс за внимание!
у меня шас так
1) создаю excel ( excel:=CreateOleObject('Excel.Application');.....)
2) записиваю данные (Sheet.Cells[k, j].NumberFormat:=r; ....)
3) отабражаю excel  файл (excel.visible:=true;)
4) юзер сам сохраняет через меню excel (я этого не хочу)
я хотел сказать "нужно автоматом сохранить excel файл допустим destifile:='d:\1111\'+datetostr(now)"


PM MAIL   Вверх
Beltar
Дата 4.3.2014, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 1
Всего: 7



К моему пред вопросу, если кто еще нарвется. Из-за чего такая хрень не выяснил, но нашел другое решение. Вместо констант clTop, xlLeft и т. д. использовать

Код

  xlVATop=1;
  xlVAMiddle=2;
  xlVABottom=3;
  xlHALeft=2;
  xlHACenter=3;
  xlHARight=4;



--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Данкинг
Дата 4.3.2014, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 5
Всего: 130



Цитата(mr_tg @  4.3.2014,  08:38 Найти цитируемый пост)
нужно автоматом сохранить excel файл

Код

Excel.ActiveWorkbook.Saveas ('sss.xls');



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
mr_tg
Дата 11.3.2014, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 79
Регистрация: 29.3.2008

Репутация: нет
Всего: нет



Данкинг  СПС за
Код

xcel.ActiveWorkbook.Saveas ('sss.xls');

помогло smile

2)    Когда ListBox1.Items.Count  больше 10000 строк 100 столбцов (вобше большие строки) программа долга экспортирует. или вобше зависает. что вы можете по советовать
 Если можно примерчик покажите ПЛС заране СПС 
PM MAIL   Вверх
Страницы: (11) Все « Первая ... 8 9 [10] 11 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.1480 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.