RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [其他] [求助]如何用程式(如:VBA或python)將DOC自動轉檔DOCX   字型大小:||| 
alonewalker
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
獨行俠

今日心情

 . 積分: 808
 . 文章: 1029
 . 收花: 6683 支
 . 送花: 181077 支
 . 比例: 27.1
 . 在線: 2665 小時
 . 瀏覽: 90592 頁
 . 註冊: 6674
 . 失蹤: 1
 . Taiwan
#1 : 2020-9-7 01:46 AM     只看本作者 引言回覆

因為個人需要
要將手上很多WORD檔案(分散在很多資料夾與子資料夾),目前都是DOC檔案(就是附檔名為.doc)

想要做到
1.轉換成也是WORD的DOCX檔案(就是附檔名為.docx)
2.而且轉換完後自動儲存在原先DOC檔案的檔案夾內

譬如說
A資料夾--1資料夾--有a.doc b.doc
          --2資料夾--有a.doc b.doc

自己之前都是笨笨的一個個打開,再一個個另存成DOCX檔案
目前自己研究也爬文了一段時間,只能針對單一資料夾內進行轉檔

不知道有沒有程式,可以達成上述功能???
上來問問大家
自己常用的是VBA或python,當然如果大大有其他程式語言可以達到上面功能,也能給小弟指點迷津,感謝。
(給程式碼或是大概的做法都可以,線上自動轉檔網站我就不列入考慮)

[alonewalker 在  2020-9-7 09:54 AM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Logger
鍛鐵驢友
等級: 7等級: 7等級: 7
ImUrFacebookStalker

今日心情

 . 積分: 84
 . 文章: 7
 . 收花: 103 支
 . 送花: 193 支
 . 比例: 1.87
 . 在線: 438 小時
 . 瀏覽: 74376 頁
 . 註冊: 7099
 . 失蹤: 51
 . Taiwan, Tainan
#2 : 2020-9-8 07:38 PM     只看本作者 引言回覆

3  Quick Ways to Batch Convert Word DOC to DOCX Files and Vice Versa
https://datanumen.com/blogs/3-qu ... les-and-vice-versa/



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
alonewalker
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
獨行俠

今日心情

 . 積分: 808
 . 文章: 1029
 . 收花: 6683 支
 . 送花: 181077 支
 . 比例: 27.1
 . 在線: 2665 小時
 . 瀏覽: 90592 頁
 . 註冊: 6674
 . 失蹤: 1
 . Taiwan
#3 : 2020-9-9 03:57 PM     只看本作者 引言回覆

感謝你。


引用:
Logger寫到:
3  Quick Ways to Batch Convert Word DOC to DOCX Files and Vice Versa
https://datanumen.com/blogs/3-qu ... les-and-vice-versa/



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
ADSLX2
銅驢友〔高級〕
等級: 10等級: 10等級: 10


 . 積分: 167
 . 文章: 235
 . 收花: 1294 支
 . 送花: 1441 支
 . 比例: 1.11
 . 在線: 2608 小時
 . 瀏覽: 24305 頁
 . 註冊: 6983
 . 失蹤: 1055
#4 : 2020-11-24 05:21 PM     只看本作者 引言回覆

pip pypI 應有 dosx 的 package


[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
acrd
白銀驢友
等級: 15等級: 15等級: 15等級: 15等級: 15


今日心情

 . 積分: 1467
 . 文章: 1197
 . 收花: 12413 支
 . 送花: 2486 支
 . 比例: 0.2
 . 在線: 2443 小時
 . 瀏覽: 15492 頁
 . 註冊: 8047
 . 失蹤: 0
#5 : 2023-3-5 12:32 AM     只看本作者 引言回覆

chatgpt

Function GetAllDocFiles(folderPath As String) As String()
    ' 搜尋指定目錄及其子目錄下所有 .doc 檔案的路徑
    Dim fileNames() As String
    ReDim fileNames(0)

    Dim fileName As String
    fileName = Dir(folderPath & "\*.doc", vbNormal)

    While fileName <> ""
        If fileName <> "." And fileName <> ".." Then
            ' 將找到的 .doc 檔案加入陣列中
            fileNames(UBound(fileNames)) = folderPath & "\" & fileName
            ReDim Preserve fileNames(UBound(fileNames) + 1)
        End If
        fileName = Dir()
    Wend

    Dim subFolderPath As String
    subFolderPath = Dir(folderPath & "\*", vbDirectory)

    While subFolderPath <> ""
        If subFolderPath <> "." And subFolderPath <> ".." Then
            ' 如果是目錄,就遞迴呼叫本身搜尋該目錄
            If (GetAttr(folderPath & "\" & subFolderPath) And vbDirectory) = vbDirectory Then
                Dim subFolderFiles() As String
                subFolderFiles = GetAllDocFiles(folderPath & "\" & subFolderPath)
                If UBound(subFolderFiles) > -1 Then
                    ' 將子目錄中找到的 .doc 檔案加入陣列中
                    Dim i As Integer
                    For i = 0 To UBound(subFolderFiles)
                        fileNames(UBound(fileNames)) = subFolderFiles(i)
                        ReDim Preserve fileNames(UBound(fileNames) + 1)
                    Next i
                End If
            End If
        End If
        subFolderPath = Dir()
    Wend

    If UBound(fileNames) > 0 Then
        ReDim Preserve fileNames(UBound(fileNames) - 1)
    Else
        ReDim fileNames(-1)
    End If
   
    GetAllDocFiles = fileNames
End Function

Sub ConvertDocToDocx()
    ' 將所有 .doc 檔案轉換為 .docx 檔案
    Dim fileNames() As String
    fileNames = GetAllDocFiles("C:\My Documents") ' 指定搜尋目錄

    Dim fileName As String
    For Each fileName In fileNames
        Dim doc As Document
        Set doc = Documents.Open(fileName)
        doc.SaveAs2 FileName:=Replace(fileName, ".doc", ".docx"), FileFormat:=wdFormatXMLDocument
        doc.Close
    Next fileName
End Sub


這個程式會搜尋指定的目錄及其子目錄下所有 .doc 檔案,並將其轉換為 .docx 格式。如果您希望搜尋的目錄不同,請將 GetAllDocFiles 函數中的 folderPath 變數設定為該目錄的路徑。注意,這個程式會將找到的所有 .doc 檔案都轉換為 .docx 格式,請務必備份原始檔案。

[acrd 在  2023-3-5 12:44 AM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-6-14 12:44 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 4.516793 second(s), 7 queries , Qzip disabled