Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Deplhi7+Ole+Word. Не работает сохранение документа. / 16 сообщений из 16, страница 1 из 1
06.02.2018, 15:58
    #39597545
Валерий666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deplhi7+Ole+Word. Не работает сохранение документа.
Вот огрызок кода:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
var 
 MSWord: Variant;

.......

//Процедура

var 
 wdApp, wdDoc, wdRng, wdTable ,wdSavePath: Variant;
begin
 MSWord:=CreateOLEObject('Word.Application');
....
//Работа с документом
....
// Сохранение
wdSavePath:=  Form1.spath+'\files\export.doc';
    Msword.ActiveDocument.SaveAs(Name:= wdSavePath,FileFormat:=wdFormatRTF);
    Msword.visible:=true;
    msword:=unassigned;



Пробовал:
Код: pascal
1.
2.
3.
4.
MSWord.Documents.SaveAs(Name:= wdSavePath);
MSWord.ActiveDocument.SaveAs(Name:= wdSavePath);
MSWord.SaveAs(Name:= wdSavePath);
MSWord.SaveFileAs(Name:= wdSavePath);

С прочими параметрами, пустыми в том числе.... результат один:
...
Рейтинг: 0 / 0
06.02.2018, 15:59
    #39597546
Валерий666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deplhi7+Ole+Word. Не работает сохранение документа.
Что подскажите?
...
Рейтинг: 0 / 0
06.02.2018, 16:13
    #39597554
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deplhi7+Ole+Word. Не работает сохранение документа.
Попробуй указать все параметры: https://msdn.microsoft.com/en-us/library/office/aa220734(v=office.11).aspx
А те, которые не нужны, заменить на null.
...
Рейтинг: 0 / 0
06.02.2018, 16:17
    #39597556
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deplhi7+Ole+Word. Не работает сохранение документа.
FileSaveAs
Валерий666
Код: pascal
1.
2.
var 
 wdApp, wdDoc, wdRng, wdTable ,wdSavePath: Variant;

Вот нафига объявлять свои переменные со стандартными префиксами Word? Секса в жизни не хватает?
...
Рейтинг: 0 / 0
06.02.2018, 16:18
    #39597560
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deplhi7+Ole+Word. Не работает сохранение документа.
_Vasilisk_FileSaveAsИзвиняюсь. Это из объекта WordBasic
...
Рейтинг: 0 / 0
06.02.2018, 16:20
    #39597562
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deplhi7+Ole+Word. Не работает сохранение документа.
Валерий666,
wadman https://msdn.microsoft.com/en-us/library/office/aa220734(v=office.11).aspx Здесь не вижу параметра Name. Вижу FileName
...
Рейтинг: 0 / 0
06.02.2018, 16:26
    #39597568
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deplhi7+Ole+Word. Не работает сохранение документа.
Код: pascal
1.
2.
3.
*.SaveAs('D:\Document.doc', EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 
                           EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 
                           EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam)
...
Рейтинг: 0 / 0
06.02.2018, 16:27
    #39597571
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deplhi7+Ole+Word. Не работает сохранение документа.
1. Версия Word (Ms Office) ??? !!!!

2.
Странно. что SaveAs дергается через Msword.ActiveDocument
а не напрямую в Document с которым выше работали.

Ну и сообщение "not supported by automation object" как-то тяжело перевести по другому. Я бы грешил, что ActiveDocument какой-то не такой. Но что делал ТС с Word'ом до этого - не очень понятно.

3. Решил в своем оффисе (Application.Version=16.0) поэксперементировать, без Delphi. VBA не показывает метода SaveAs, теперь метод SaveAs2
https://msdn.microsoft.com/en-us/VBA/Word-VBA/articles/document-saveas2-method-word

В общем, IMHO: "если где увидел люк, не волнуйся, это новая версия MS Office"
...
Рейтинг: 0 / 0
06.02.2018, 16:30
    #39597575
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deplhi7+Ole+Word. Не работает сохранение документа.
Валерий666,

может, импортируешь библиотеку типов MS Word да просто посмотришь, что там за методы?
...
Рейтинг: 0 / 0
06.02.2018, 16:47
    #39597596
Валерий666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deplhi7+Ole+Word. Не работает сохранение документа.
чччД
Код: pascal
1.
2.
3.
*.SaveAs('D:\Document.doc', EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 
                           EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 
                           EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam)


Помогло. Спасибо!
...
Рейтинг: 0 / 0
06.02.2018, 16:50
    #39597598
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deplhi7+Ole+Word. Не работает сохранение документа.
Валерий666...
Помогло. Спасибо!
А ведь сразу ответили: 21170430
...
Рейтинг: 0 / 0
06.02.2018, 18:26
    #39597668
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deplhi7+Ole+Word. Не работает сохранение документа.
_Vasilisk_Здесь не вижу параметра Name. Вижу FileNameЭто видели?
...
Рейтинг: 0 / 0
06.02.2018, 19:14
    #39597707
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deplhi7+Ole+Word. Не работает сохранение документа.
Вообще, конечно, код прикольный:
Валерий666
Код: pascal
1.
    Msword.ActiveDocument.SaveAs(Name:= wdSavePath,FileFormat:=wdFormatRTF);


Я сперва подумал, что сишник троллит.
...
Рейтинг: 0 / 0
06.02.2018, 20:22
    #39597740
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deplhi7+Ole+Word. Не работает сохранение документа.
чччД,

А что это вообще за конструкция? Каким боком она может работать?
...
Рейтинг: 0 / 0
06.02.2018, 20:48
    #39597760
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deplhi7+Ole+Word. Не работает сохранение документа.
alekcvpчччД,

А что это вообще за конструкция? Каким боком она может работать?
Доступ к параметру "по имени".

Смотри, вот метод SaveAs: https://msdn.microsoft.com/en-us/library/office/aa220734(v=office.11).aspx

Там тьма-тьмущая параметров, а тебе нужно лишь задать параметр по имени FileName

Код: pascal
1.
expression .SaveAs(FileName, FileFormat, LockComments, Password, AddToRecentFiles, WritePassword, ReadOnlyRecommended, EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData, SaveAsAOCELetter, Encoding, InsertLineBreaks, AllowSubstitutions, LineEnding, AddBiDiMarks)



Ну и делаешь:

Код: pascal
1.
.SaveAs(FileName := 'D:\Документ.docx')



Можно и позиционно, но пропуская "ненужные", ч/з запятую:
Код: pascal
1.
expression .SaveAs(FileName, , , , , , , , , , , , , , True)





Только с волшебной ОЛЕ- автоматизацией. Гугли: "Automation Object Method-Call Syntax".
...
Рейтинг: 0 / 0
06.02.2018, 21:03
    #39597775
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deplhi7+Ole+Word. Не работает сохранение документа.
alekcvp,

именованные параметры

особый случай для IDispatch ( OLE Automation )
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Deplhi7+Ole+Word. Не работает сохранение документа. / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]