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

Поиск:

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


Новичок



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

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



Здравствуйте.
При обработке информации в таблицах документа MS Word я пытаюсь использовать две переменные типа 
OleVariant, которые ссылаются на IDispatch таблиц, в которых были найдены определенные значения. 
Как узнать, ссылаются переменные на одну и ту же таблицу или нет. Благодарю Вас.
PM MAIL   Вверх
TVV777
Дата 15.7.2008, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



При работе с Word-ом ни где не упоминается как объединить или разбить ячейки таблицы . Может кто подскажет?
Я пробую так
...
tab1:=WA1.ActiveDocument.Tables.Item(1);
...
tab1.Cell(3,1).Split(1,3);  // третью строку разбить на три столбца
...
Но выдаётся ошибка:
[Error] Print_Bilet.pas(73): Types of actual and formal var parameters must be identical
Подскажите как правильно?
PM MAIL   Вверх
Albinos_x
Дата 15.7.2008, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


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

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



TVV777
Цитата(TVV777 @  15.7.2008,  14:30 Найти цитируемый пост)
Split(1,3)

значения 1 и 3 попробуйте передать как olevariant, я вам уже ответил по мылу

Добавлено через 3 минуты и 13 секунд
nuzzle, хм...  наверно если только проверять содержание таблиц... точного ответа на этот вопрос пока не могу стказать


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


Новичок



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

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



Большое спасибо за предыдущую подсказку!!! У меня к Вам есть ещё вопрос.
Допустим у меня есть заполненная таблица. и мне нужно выделить в одной из ячеек одно слово (чтобы отформатировать его). Слово может находится в любом месте строки. Слово этоя я знаю, и знаю что оно там точно есть. Подскажите как это сделать пожалуйста!!! Местоположение слова с точностью до символа и его длину я тоже знаю.
И ещё: каким способом можно перемешать курсор по ячейкам (к примеру нужно поставить курсор в 5,1 яейку)? 
Топик просто великолепен!!!
PM MAIL   Вверх
Albinos_x
Дата 16.7.2008, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


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

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



попробуйте так:

Код

// выделение другой ячейки
 Tbl.Cell(2,3).Range.Select;
WordDocument1.Range.Collapse(fil);
// вставляем текст после выделения, по текущей позиции курсора
 WordApplication1.Selection.InsertAfter(#13+'hello insert');


Добавлено через 1 минуту и 29 секунд
это по поводу выделения ячейки

Добавлено через 2 минуты и 56 секунд
если знаете расположение слова с такой точностью, то устанавливайте Range и потом запускайте процедуру Select


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


Опытный
**


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

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



Можно вопрос по TExcelChart?

У меня есть рабочая книга на первом листе таблица, на втором диаграмма.
Используя TExcelChart я попробовал присоедениться так:

Код

EChart.ConnectTo(EWBook.Sheets[2] as ExcelChart);


Никаких сообщений об ошибках не выдается, это радует.

Записал для выяснения свойств макрос:


Код

    With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = "Диаграмма 2"
        .Axes(xlCategory, xlPrimary).HasTitle = True
        .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Ось X"
        .Axes(xlValue, xlPrimary).HasTitle = True
        .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Ось Y"
    End With
    ActiveChart.ChartArea.Select
    ActiveChart.SeriesCollection(1).XValues = "=Лист1!R2C1:R16C1"
    ActiveChart.SeriesCollection(1).Values = "=Лист1!R2C2:R16C2"


Однако при попытках в Delphi написать:

Код

EChart.ChartTitle[lcid].Characters.Text[lcid]:='Название диаграммы';
EChart.SeriesCollection(1).XValues:='=Лист1!R5C2:R6C2';
EChart.SeriesCollection(1).Values:='=Лист1!R5C3:R6C3';


только получаю сообщения, что [Pascal Error] FormReport.pas(345): E2029 '[' expected but '.' found да [Pascal Error] FormReport.pas(346): E2003 Undeclared identifier: 'XValues'

Как правильно?

Это сообщение отредактировал(а) Beltar - 17.2.2009, 10:47


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


Evil Skynet
****


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

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



Код
...
EChart.ChartTitle[lcid]].Characters[Start, Length :Olevariant].Text:='Название диаграммы';
...



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


Новичок



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

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



Доброго времени суток. Подскажите пожалута как в Excel узнать количество заполненных строк.
В Delphi пишу:
Код

c:=ExcelApp.Rows.count;

В итоге количество строк показывает 65536, хотя я точно знаю, что их там не более 35000.  smile 
PM MAIL ICQ Skype   Вверх
Albinos_x
Дата 5.3.2009, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


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

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



на первой странице этой темы написано...
http://forum.vingrad.ru/forum/topic-84634/0.html#


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


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Объединить ячейки Excel
Код
Sheet.Range[...].Merge(Across)


Добавлено через 2 минуты и 15 секунд
Относительно LOCALE_USER_DEFAULT
Относительно открытия существующих рабочих книг
Закрытие книги
Способы обращения к ячейкам
Копирование данных в буфер обмена
http://forum.vingrad.ru/index.php?showtopi...st&p=306276
Это по идее должно было попасть в DRKB
PM MAIL   Вверх
Beltar
Дата 21.4.2009, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Опять вопрос относительно диаграммы. На этот раз диаграмма на том же листе, что и данные. Пробую работать без TExcelChart. Хочу просто поменять у диаграммы название.

Код

var COs:ChartObjects;
      CO:ChartObject;
begin
COs:=EWSheet.ChartObjects as ChartObjects; {не уверен, что это правильное преобразование}
CO:=COs.Item(1) as ChartObject;
CO.Activate;
//CO.Chart.ChartArea[lcid].Select; // Такой вызов есть у Excel в макросе, но мне от этого толку ноль. 
CO.Chart.HasTitle[lcid]:=true;
CO.Chart.ChartTitle[lcid].Characters[0,255].Text:='Нормальное распределение';
end;


HasTitle[lcid]:=true проходит. Однако потом вываливается ошибка OLE и AV С адресом в ноль.


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


Новичок



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

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



Привет всем. Подскажите как мне программным путем при создании документа Excel или Word дать название создаваемого документа (т.е. название документу Excel или Word)???
PM MAIL   Вверх
Данкинг
Дата 29.4.2009, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Yudya, ...saveas('имя_файла.xls');


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


Evil Skynet
****


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

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



// HasTitle[lcid]:=true проходит. Однако потом вываливается ошибка OLE и AV С адресом в ноль.

Beltar, попробуй закомментировать строки:
Код

// CO.Activate;
// CO.Chart.ChartArea[lcid].Select; // Такой вызов есть у Excel в макросе, но мне от этого толку ноль. 

сталкивался иногда с тем, что именно эти строки могут вызывать ошибки, а обращение к нужному обёкту у вас всё равно будет происходить....


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


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

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

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


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

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

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


 




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


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

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