无需打开每个文件即可将 Word DOCX 文件转换为模板 DOTX 文件

无需打开每个文件即可将 Word DOCX 文件转换为模板 DOTX 文件

我有大量 Word DOCX 格式的表单,我想将其转换为模板。以前我可以将 .DOC 重命名为 .DOT,这样就足以将文件转换为模板,但对于新的 .DOCX -> .DOTX 格式,这不起作用。

我知道我可以打开每个文件并将其重新保存为 .DOTX,但我不想手动重新保存每个文件。

将 DOCX“转换”为 DOTX 模板的最简单方法是什么?

答案1

曾经有一段时间,文档文件和模板文件除了文件扩展名之外完全相同,但现在情况已不再如此。如今,这需要使用专用产品、在线转换器或编写自己的产品。

这里有一些(未经测试的)脚本。它们要求所有.docx文件都放在一个文件夹中,并且最终使用 Word 进行转换。

来自文章 使用 PowerShell 转换 Word 文档格式 我在以下人员的帮助下改编了这个 PowerShell 脚本: 这个答案

$wdTypes = Add-Type -AssemblyName 'Microsoft.Office.Interop.Word' -Passthru
$wdSaveFormat = $wdTypes | Where {$_.Name -eq "wdSaveFormat"}

$path = "c:\path-to-files\" 
$word_app = New-Object -ComObject Word.Application

$Format = [Microsoft.Office.Interop.Word.WdSaveFormat]::wdFormatXMLTemplate

Get-ChildItem -Path $path -Filter *.docx | ForEach-Object {
    $document = $word_app.Documents.Open($_.FullName)
    $dotx_filename = "$($_.DirectoryName)\$($_.BaseName).dotx"
    $document.SaveAs([ref] $dotx_filename, [ref]$Format)
    $document.Close()
}
$word_app.Quit()

在文中 快速将文件夹中的 .docx 文件转换为 .dotx 格式 我找到了这个 VBA 宏:

Sub DOCX_To_DOTX()
Application.ScreenUpdating = False
Dim strFolder As String, strFile As String, wdDoc As Document
strFolder = GetFolder
If strFolder = "" Then Exit Sub
strFile = Dir(strFolder & "\*.docx", vbNormal)
While strFile <> ""
  Set wdDoc = Documents.Open(FileName:=strFolder & "\" & strFile, AddToRecentFiles:=False, Visible:=False)
  wdDoc.SaveAs2 FileName:=strFolder & "\" & Split(strFile, ".docx")(0) & ".dotx", Fileformat:=wdFormatXMLTemplate, AddToRecentFiles:=False
  wdDoc.Close
  'Kill strFolder & "\" & strFile
  DoEvents
  strFile = Dir()
Wend
Set wdDoc = Nothing
Application.ScreenUpdating = True
End Sub
 
Function GetFolder() As String
Dim oFolder As Object
GetFolder = ""
Set oFolder = CreateObject("Shell.Application").BrowseForFolder(0, "Choose a folder", 0)
If (Not oFolder Is Nothing) Then GetFolder = oFolder.Items.Item.Path
Set oFolder = Nothing
End Function

我没有对上述脚本进行测试,因此我建议让它们在包含文件的文件夹的副本上工作.docx,而不是在原始文件上工作。

相关内容