Что нового

Сохранение Word файла через путь с переменными

DOMINANT

Новичок
Сообщения
42
Репутация
0
Здравствуйте! Такая проблема возникла, суть нужно открыть word файл тест.doc который лежит в папке со скриптом, произвести в нем некоторые изменения в данном случае просто вставляется текст, и самое главное сохранить в новую папку которую пытаюсь обозначить через переменную , папка по идеии должна появляется на лету при сохранении файла самим вордом вот мои попытки скрипт завершает работу с Exit code 0 и ни какой новой папки с файлом нет

Код:
#include <Word.au3>

$varNumber = "51/22.05.17/СКР/НЕТ"
$varNumber1 = StringReplace($varNumber, '/', ".", 1)
$varNewNumber = StringReplace($varNumber1, '/', ' ', 0)

$patchForDoc = @ScriptDir & '\ГОТОВЫЕ\' & $varNewNumber

$CreateNewWordDoc = _Word_Create()
$oDoc = _Word_DocOpen($CreateNewWordDoc, @ScriptDir & "\тест.docx", 0, 0, 0, 1)
$oDoc.Range.Text = "This is some text to insert."
_Word_DocSaveAs($CreateNewWordDoc, $patchForDoc & '\новый документ.docx', 0, 0)
_Word_Quit($CreateNewWordDoc)
 
A

Alofa

Гость
Код:
#include <Word.au3>

$varNumber = "51/22.05.17/СКР/НЕТ"
$varNewNumber = StringReplace(StringReplace($varNumber, '/', ".", 1), '/', ' ', 0)

$patchForDoc = @ScriptDir & '\ГОТОВЫЕ\' & $varNewNumber
If Not FileExists($patchForDoc) Then DirCreate($patchForDoc)

$CreateNewWordDoc = _Word_Create()
$oDoc = _Word_DocOpen($CreateNewWordDoc, @ScriptDir & "\тест.docx", 0, 0, 0, 1)
$oDoc.Range.Text = "This is some text to insert."
_Word_DocSaveAs($oDoc, $patchForDoc & '\новый документ.docx', $WdFormatDocumentDefault)
_Word_Quit($CreateNewWordDoc)

Замечания по использованию "_Word_DocSaveAs()":[list type=decimal]
[*]- параметр: указывается объект документа;
[*]- параметр: каталог назначения должен существовать;
[*]- параметр: задается формат документа, в котором он будет сохранен. Если ваш документ не с расширением .doc, то необходимо указать данный параметр.
Поддерживаемые форматы:
Константы из "WordConstants.au3":
Код:
; WdSaveFormat Enumeration. Specifies the format to use when saving a document.
; See: http://msdn.microsoft.com/en-us/library/bb238158%28v=office.12%29
Global Const $WdFormatDocument = 0 ; Microsoft Office Word format
Global Const $WdFormatDOSText = 4 ; Microsoft DOS text format
Global Const $WdFormatDOSTextLineBreaks = 5 ; Microsoft DOS text with line breaks preserved
Global Const $WdFormatEncodedText = 7 ; Encoded text format
Global Const $WdFormatFilteredHTML = 10 ; Filtered HTML format
Global Const $WdFormatHTML = 8 ; Standard HTML format
Global Const $WdFormatRTF = 6 ; Rich text format (RTF)
Global Const $WdFormatTemplate = 1 ; Word template format
Global Const $WdFormatText = 2 ; Microsoft Windows text format
Global Const $WdFormatTextLineBreaks = 3 ; Windows text format with line breaks preserved
Global Const $WdFormatUnicodeText = 7 ; Unicode text format
Global Const $WdFormatWebArchive = 9 ; Web archive format
Global Const $WdFormatXML = 11 ; Extensible Markup Language (XML) format
Global Const $WdFormatDocument97 = 0 ; Microsoft Word 97 document format
Global Const $WdFormatDocumentDefault = 16; Word default document file format. For Microsoft Office Word 2007, this is the DOCX format
Global Const $WdFormatPDF = 17 ; PDF format
Global Const $WdFormatTemplate97 = 1 ; Word 97 template format
Global Const $WdFormatXMLDocument = 12 ; XML document format
Global Const $WdFormatXMLDocumentMacroEnabled = 13 ; XML document format with macros enabled
Global Const $WdFormatXMLTemplate = 14 ; XML template format
Global Const $WdFormatXMLTemplateMacroEnabled = 15 ; XML template format with macros enabled
Global Const $WdFormatXPS = 18 ; XPS format
[/list]


Добавлено:
Сообщение автоматически объединено:

Также внимательно почитайте Примечания по использованию функций и сделайте правильные выводы.
Если вы считаете, что это законченый участок кода, то вы ошибаетесь. Тут еще нужно предусмотреть реакцию скрипта на различного рода ошибки, во избежании критчесеских вылетов.
 
Верх