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

Поиск:

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


Опытный
**


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

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



А у меня почему-то

Код

Range.Borders.Item[xlEdgeLeft].Weight:=xlMedium;
Range.Borders.Item[xlEdgeLeft].LineStyle:=xlContinuous;


Не сработало.

Range я получаю так:

Код

Range:=EWSheet.Range['A'+IntToStr(Row),Char(ord('A')+DefLen+2)+IntToStr(Row)];


И нормально заношу в него данные. В чем м/б хитрость? 


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


Evil Skynet
****


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

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



"не сработало" в каком смысле? не запустилось, выдало ошибку, просто ничего не произошло? 


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


Опытный
**


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

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



Сетка остается такой, как была, хотя данные в Range записываются. 


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


Evil Skynet
****


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

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



попробуй так:
Код
...
ExcelApplication1.Range['A3','H3'].Borders.Weight:=xlMedium;
ExcelApplication1.Range['A3','H3'].Borders.Item[xlEdgeBottom].LineStyle:=xlContinuous;
ExcelApplication1.Range['A3','H3'].Borders.Item[xlEdgeLeft].LineStyle:=xlContinuous;
ExcelApplication1.Range['A3','H3'].Borders.Item[xlEdgeTop].LineStyle:=xlContinuous;
ExcelApplication1.Range['A3','H3'].Borders.Item[xlEdgeRight].LineStyle:=xlContinuous;
...
 


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


Evil Skynet
****


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

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



обнаружено различие между Excel2000 и ExcelXP в методе сохранения. В первых постах внесено изменение. Приведу код, как сделать, чтоб приложение работало и в 2000 и в ХР:
Код
...
uses ..., ExcelXP, Excel2000;
...
...    
if (StrToInt(Copy(ExcelApplication1.Version[icid],1,pos('.',ExcelApplication1.Version[icid])-1)))=9 then    
    (ExcelWorkbook1 as Excel2000.TExcelWorkbook).SaveAs(s, EmptyParam, EmptyParam, EmptyParam,    
                                                      EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,    
                                                      EmptyParam, EmptyParam,0)    
    else    
    (ExcelWorkbook1 as ExcelXP.TExcelWorkbook).SaveAs(s, EmptyParam, EmptyParam, EmptyParam,    
                                                    EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,    
                                                    EmptyParam,EmptyParam, EmptyParam,0);    
...
...
 

Это сообщение отредактировал(а) Albinos_x - 5.12.2006, 02:14


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


Шустрый
*


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

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



Albinos_x, помоги..
я закинул на форму
ExcelApplication1,   ExcelWorksheet1 и  ExcelWorkbook1.
Соединяюсь так (взял из какого-то твоего примера, с форума) :
Код

ExcelApplication1.AutoConnect:=true; 
  // открываем книгу 
  ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.OpenXML(OpenDialog1.FileName,EmptyParam)); 
  // соединяемся с книгой 
  ExcelApplication1.ConnectTo(ExcelWorkbook1.Application); 
  ExcelWorksheet1.ConnectTo(ExcelWorkbook1.ActiveSheet as ExcelWorksheet); 
................


у меня ошибка вылетает "interface not supported"

и встает на строчке 
Код

 Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation'); 


(функции  function TExcelQueryTable.GetDefaultInterface)
в модуле ExcelXP.pas

Да. Система такая: win2000, excel2000, в делфи 7 стоит компонент excellXP.
По идее должно работать, но вылетает вышеуказанная ошибка...
говорю "должно", т.к проходила все работало при таких параметрах:
 windowsXP, excel2003, делфи7 с компонентом ExcelXP 


M
Girder
Welt, большая просьба создавать темы по своим проблемам и не засорять ими... данную тему.
  
PM MAIL   Вверх
Albinos_x
Дата 1.6.2006, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


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

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



мда... в Excel 2000 нет OpenXML, там только Open:
Код
...
(ExcelApplication1 as Excel2000.TExcelApplication).Workbooks.Open(OpenDialog1.FileName,EmptyParam, EmptyParam, EmptyParam,
                                                      EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
                                                      EmptyParam, EmptyParam,EmptyParam,EmptyParam, 0)
...


Добавлено @ 00:33 
PS: и в привёдённом тобой коде пятая строка не обязательна... 

Это сообщение отредактировал(а) Albinos_x - 5.12.2006, 02:22


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


Шустрый
*


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

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



Albinos_x
да..это понятно, что нет OpenXML.
Я и делал только с Open.
мне больше хотелось услышать мнение на счет ошибки
interface not supported
может быть вы сталкивались... 
PM MAIL   Вверх
Albinos_x
Дата 3.6.2006, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


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

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



ты бы написал на какой строчке вылетает ошибка.... то что встаёт на строчке

Assert

не значит, что ошибка возникает в этом месте... тем более, что функция из System, и при чём 
Цитата

(функции  function TExcelQueryTable.GetDefaultInterface)

я так и не понял...

а ошибка видимо,  из-за того что в какой-то фунции есть расхождение ХР и 2000 Excel... возможна передача большего числа параметров, чем нужно или наоборот недостаточно... 


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


Evil Skynet
****


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

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



часто задают вопрос как отключить сообщения выскакивающие в Excel:
Код
...
ExcelApplication1.DisplayAlerts[icid]:=false;
...
 


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


Evil Skynet
****


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

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



один из часто задаваемых вопросов:
если хотите проверить на запущенность Ворда, то можно использовать отдельные функции... к примеру:
Код

function WordRunning:Boolean;    
var    
 temp: Variant;    
begin    
  try    
    temp := GetActiveOleObject('Word.Application');    
    Result := true;    
    temp:=unassigned; 
  except    
   Result := false;
 end;    
end;

или
Код

procedure TForm1.Button1Click(Sender: TObject);    
var    
  Unknown: IUnknown;    
  Result: HResult;    
begin    
  Result := GetActiveObject(ProgIDToClassID('Word.Application'), nil, Unknown);    
  if Result = MK_E_UNAVAILABLE then    
    ShowMessage('Закрыт')    
  else    
    ShowMessage('Открыт')    
end;

или
Код
...
if FindWindow('MsoStdCompMgr',nil)<>0 then caption:='On' else caption:='Off';
...


  

Это сообщение отредактировал(а) Albinos_x - 27.6.2006, 16:47


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


Новичок



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

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



Уважаемый администратор, назовите, пожалуйсто причину, по которой был удален мой пост? Что в нем было не так? smile  
PM MAIL   Вверх
Girder
Дата 24.6.2006, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


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

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



Цитата(TYRARGO @  24.6.2006,  05:10 Найти цитируемый пост)
Уважаемый администратор, назовите, пожалуйсто причину, по которой был удален мой пост? Что в нем было не так?

1. см. просьбу модератора... в ентом посте 
http://forum.vingrad.ru/index.php?showtopi...st&p=749528
2. вот твой пост(тема): http://forum.vingrad.ru/index.php?showtopic=101581
     


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
Albinos_x
Дата 22.8.2006, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


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

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



Обнаружил у MSWord ещё один интересный метод, с помощью которого можно получить доступ ко всему содержанию документа:
Код
...
Memo1.Text:=WordDocument1.Content.Text;
...


в часности это метод Content, свойства _Document

Text - принимает значение WideString;
Сам Content имеет тип Range и все действия для него адекватны и для Content.


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


Шустрый
*


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

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



Подскажите, как можно в TWordApplication добавить из TStream. До этого в TStream я сохранял документ Word ???
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1714 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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