izhevsk.ru Главная /  Windows /  Массовая конвертация DOC в DOCX
тема закрыта

Имя:
Пароль:
 зарегистрироваться | Войти через
напоминатель пароля
Массовая конвертация DOC в DOCX
НОВАЯ ТЕМА правила | поиск | картинки | | | о форуме |
  Новости | Авто | Недвижимость | Работа | Бизнес | Стройка | Объявления | Совместная покупка | | |
  следующая тема | предыдущая тема
Автор Тема:   Массовая конвертация DOC в DOCX   версия для печати
Нович0к
Рейтинг: 132/-82
-- написано 22-4-2016 12:01 Нович0к

есть ли какие-то программы? сидеть конвертировать ручкаме почти полторы тыщщи файлов мне как-то слабо улыбается.....

история редактирования

Показать текст сообщения полностью
ELForcer
Рейтинг: 124/-54
-- написано 22-4-2016 20:36 ELForcer

@Нович0к Можно попробовать макросом в том же Word.
Кстати, а почему Docx? Обычно наоборот требуется для совместимости со старым офисом...

история редактирования

Froz
Рейтинг: 56/-2
-- написано 22-4-2016 21:06 Froz

1. написать макрос "SaveAsDocx" читаем тут и тут, засунуть его в Normal.dot(/.dotm)
2. батничек типа
code:

@echo off
set IN=D:\docfiles
for %%i in ("%IN%\*.*") do start "" /wait /min winword.exe %1 /q /n /mSaveAsDocx /mFileExit


3. ...
4. PROFIT!

история редактирования

Morituruz
Рейтинг: 100/-91
-- написано 22-4-2016 23:14 Morituruz

Как хорошо, когда гугл только у меня есть.
На VBA:
code:

Sub SaveAllAsDOCX()

'Search #EXT to change the extensions to save to docx

Dim strDocName As String
Dim strPath As String
Dim oDoc As Document
Dim fDialog As FileDialog
Dim intPos As Integer

'Create a folder dialog
Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
With fDialog
.Title = "Select root folder and click OK"
.AllowMultiSelect = False
.InitialView = msoFileDialogViewList
If .Show <> -1 Then
MsgBox "Cancelled By User", , "List Folder Contents"
Exit Sub
End If

'Select root folder
strPath = fDialog.SelectedItems.Item(1)

'Ensure the Folder Name ends with a "\"
If Right(strPath, 1) <> "\" Then strPath = strPath + "\"

End With

'Close any open documents
If Documents.Count > 0 Then
Documents.Close SaveChanges:=wdPromptToSaveChanges
End If

'remove any quotes from the folder string
If Left(strPath, 1) = Chr(34) Then
strPath = Mid(strPath, 2, Len(strPath) - 2)
End If

'begin recusion
recurse (strPath)

End Sub

'This method controls the recusion
Function recurse(folder As String)

'save all the files in the current folder
SaveFilesInFolder (folder)

'get all the subfolders of the current folder
Dim folderArray
folderArray = GetSubFolders(folder)

'Loop through all the non-empty elements for folders
For j = 1 To UBound(folderArray)
If folderArray(j) <> "" Then
'begin recusion on subfolder
recurse (folder & folderArray(j) & "\")
End If
Next
End Function

'Saves all files with listed extensions
Function SaveFilesInFolder(folder As String)

'List of extensions to look for #EXT
Dim strFilename As String
extsArray = Array("*.rtf", "*.doc")

'Loop through extensions
For i = 0 To (UBound(extsArray))

'select the 1st file with the current extension
strFilename = Dir(folder & extsArray(i), vbNormal)

'double check the current extension (don't to resave docx files)
Dim ext As String
ext = ""
On Error Resume Next
ext = Right(strFilename, 5)

If ext = ".docx" Or ext = "" Then
'Don't need to resave files in docx format
Else
'Save the current file in docx format
While Len(strFilename) <> 0
Set oDoc = Documents.Open(folder & strFilename)
strDocName = ActiveDocument.FullName
intPos = InStrRev(strDocName, ".")
strDocName = Left(strDocName, intPos - 1)
strDocName = strDocName & ".docx"
oDoc.SaveAs FileName:=strDocName, _
FileFormat:=wdFormatDocumentDefault
oDoc.Close SaveChanges:=wdDoNotSaveChanges

strFilename = Dir
Wend
End If
Next

strFilename = ""
End Function

'List all the subfolders in the current folder
Function GetSubFolders(RootPath As String)
Dim FS As New FileSystemObject
Dim FSfolder As folder
Dim subfolder As Variant


Set FSfolder = FS.GetFolder(RootPath)

'subfolders is variable length
Dim subfolders() As String
ReDim subfolders(1 To 10)

Dim i As Integer
i = LBound(subfolders)
For Each subfolder In FSfolder.subfolders
subfolders(i) = subfolder.Name

'increase the size of subfolders if it's needed
i = i + 1
If (i >= UBound(subfolders)) Then
ReDim subfolders(1 To (i + 10))
End If

Next subfolder

Set FSfolder = Nothing

GetSubFolders = subfolders

End Function



Код требует компонента Windows Script Host

+ Есть специальная программа от Микрософта, но более геморройная:
https://blogs.msdn.microsoft.c...rt-doc-to-docx/

Нович0к
Рейтинг: 132/-82
-- написано 23-4-2016 11:58 Нович0к

quote:
Originally posted by Morituruz:

Как хорошо, когда гугл только у меня есть.



ну гугл и у меня есть только для меня это все - китайская азбука....
Morituruz
Рейтинг: 100/-91
-- написано 23-4-2016 13:29 Morituruz

quote:
Originally posted by Нович0к:

ну гугл и у меня есть только для меня это все - китайская азбука....



Ну раз гугла таки нет, учиться не хотите и подчинённого, кому поручить это тоже нет - сидите, сохраняйте вручную

история редактирования

Нович0к
Рейтинг: 132/-82
-- написано 23-4-2016 14:05 Нович0к

quote:
Originally posted by Morituruz:

Ну раз гугла таки нет,



такого - нет)
Morituruz
Рейтинг: 100/-91
-- написано 23-4-2016 14:10 Morituruz

А такой есть? :-)
termit
Рейтинг: 7/-3
-- написано 26-4-2016 21:42 termit

рекомендую использовать скрипт на powershell. писал для себя, при конвертации указываем по какому пути и надо ли оригиналы.
wad
Рейтинг: 67/-40
-- написано 28-4-2016 10:39 wad

ren *.doc *.docx
termit
Рейтинг: 7/-3
-- написано 28-4-2016 20:01 termit

quote:
Изначально написано wad:
ren *.doc *.docx

ну ну )))

mau5
Рейтинг: 14/-3
-- написано 21-5-2016 18:38 mau5

quote:
Изначально написано Нович0к:

конвертация DOC в DOCX


http://www.batchwork.com/en/doc2doc/

Trial версия вроде 7 дней.


200x150 320x240 400x300 800x600    без переносов   
быстрый ответ   

подпись
следующая тема | предыдущая тема

Главная /  Windows /  Массовая конвертация DOC в DOCX форумы izhevsk.ru

 
 
 
 
 
© ООО "Марк" 2020
 
Интернет-провайдер КК МАРК-ИТТ