בקשת מידע | האם יש אפשרות להפוך קבצים מרובים של DOC לקבצי DOCX
-
@שליו כתב בבקשת מידע | האם יש אפשרות להפוך קבצים מרובים של DOC לקבצי DOCX:
בלי שיצטרכו לפתוח אחד אחד
תודה רבהלהתקין פייתון.
להתקין את החבילה הבאה:
pip install doc2docx
ליצור קובץ בסיומת py עם התוכן הבא:
import doc2docx doc2docx.convert('./')
להריץ אותו בתיקייה שבה נמצאים כל הקבצים
או לחילופין פשוט להוריד מכאן ולהריץ: doc2docx.exe
עריכה: אחר כך ראיתי שהסקריפט שלי קצת מיותר, כי אחרי שמתקינים את החבילה אפשר מיד להריץ משורת הפקודה doc2docx עם הרבה אפשרויות מובנות.
-
@sivan22 כתב בבקשת מידע | האם יש אפשרות להפוך קבצים מרובים של DOC לקבצי DOCX:
להתקין פייתון.
אני מוחה על כבודו של VBA
כאן אתה לא צריך להתקין שום דבר, ולא לרעות בשדות זרים,
Sub ConvertDocToDocx() Dim oDlg As FileDialog Dim sFolder As String Dim sName As String, sFullName As String Dim oDoc As Document Dim i As Integer: i = 0 Application.ScreenUpdating = False Set oDlg = Application.FileDialog(msoFileDialogFolderPicker) If oDlg.Show <> -1 Then Exit Sub sFolder = oDlg.SelectedItems(1) + "\" sName = Dir(sFolder & "*.doc", vbNormal) While sName <> "" If Right(LCase(sName), 3) = "doc" Then i = i + 1 Set oDoc = Documents.Open(FileName:=sFolder & sName, _ ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _ PasswordDocument:="", PasswordTemplate:="", Revert:=False, _ WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _ wdOpenFormatAuto, XMLTransform:="") sFullName = Left(oDoc.FullName, InStrRev(oDoc.FullName, Chr(46))) If ActiveDocument.HasVBProject = True Then ActiveDocument.SaveAs sFullName & "docm", wdFormatXMLDocumentMacroEnabled Else ActiveDocument.SaveAs sFullName & "docx", wdFormatXMLDocument End If ActiveDocument.Close End If sName = Dir() Wend Application.ScreenUpdating = True If i = 1 Then MsgBox i & " document converted" Else MsgBox i & " documents converted" End If Set oDoc = Nothing Set oDlg = Nothing End Sub
-
@דאנציג כתב בבקשת מידע | האם יש אפשרות להפוך קבצים מרובים של DOC לקבצי DOCX:
@sivan22
השאלה היא האם זה משנה רק את הסיומת, או שזה ממיר את המסמך.
אם זה משנה רק את הסיומת (ולא ממיר דרך וורד), זה לא יעזור.
היה פה פעם גם קובץ BAT שעושה את אותה עבודה:rename *.DOC *.DOCX
כשהוא בתיקייה שהקבצים נמצאים.
ברור שזה משנה את התוכן.
-
@menajemmendel כתב בבקשת מידע | האם יש אפשרות להפוך קבצים מרובים של DOC לקבצי DOCX:
@sivan22 כתב בבקשת מידע | האם יש אפשרות להפוך קבצים מרובים של DOC לקבצי DOCX:
להתקין פייתון.
אני מוחה על כבודו של VBA
Sub ConvertDocToDocx() Dim oDlg As FileDialog Dim sFolder As String Dim sName As String, sFullName As String Dim oDoc As Document Dim i As Integer: i = 0 Application.ScreenUpdating = False Set oDlg = Application.FileDialog(msoFileDialogFolderPicker) If oDlg.Show <> -1 Then Exit Sub sFolder = oDlg.SelectedItems(1) + "\" sName = Dir(sFolder & "*.doc", vbNormal) While sName <> "" If Right(LCase(sName), 3) = "doc" Then i = i + 1 Set oDoc = Documents.Open(FileName:=sFolder & sName, _ ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _ PasswordDocument:="", PasswordTemplate:="", Revert:=False, _ WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _ wdOpenFormatAuto, XMLTransform:="") sFullName = Left(oDoc.FullName, InStrRev(oDoc.FullName, Chr(46))) If ActiveDocument.HasVBProject = True Then ActiveDocument.SaveAs sFullName & "docm", wdFormatXMLDocumentMacroEnabled Else ActiveDocument.SaveAs sFullName & "docx", wdFormatXMLDocument End If ActiveDocument.Close End If sName = Dir() Wend Application.ScreenUpdating = True If i = 1 Then MsgBox i & " document converted" Else MsgBox i & " documents converted" End If Set oDoc = Nothing Set oDlg = Nothing End Sub
38 שורות קוד לעומת 2
-
@sivan22 כתב בבקשת מידע | האם יש אפשרות להפוך קבצים מרובים של DOC לקבצי DOCX:
38 שורות קוד לעומת 2
שכחת שאתה צריך להתקין תוכנה במיוחד,
נראה לי שאנשים מעדיפים לעשות העתק הדבק של 38 שורות מלהתקין תוכנהועוד כאן עובד אופליין
חוץ מזה לא הבנתי איפה כותבים את התיקיה שרוצים להמיר
-
@menajemmendel פייתון זה האולר שווייצרי שלי, אפילו לא חיפשתי משהו אחר.
-
@sivan22 כתב בבקשת מידע | האם יש אפשרות להפוך קבצים מרובים של DOC לקבצי DOCX:
@menajemmendel פייתון זה האולר שווייצרי שלי, אפילו לא חיפשתי משהו אחר.
ברור שאם אני הייתי יודע פייתון כמו שאני יודע VBA הייתי עושה בפייתון לעצמי, אבל לאחרים [שלא מכירים שום דבר] עדיף VBA, אתה יכול לשלוח להם אפ' קובץ וורד מוכן שיעשה את זה
-
@menajemmendel כתב בבקשת מידע | האם יש אפשרות להפוך קבצים מרובים של DOC לקבצי DOCX:
אבל לאחרים [שלא מכירים שום דבר] עדיף VBA,
ממש כך, ניסיתי גם עם הפייתון וממש לא הסתדרתי
אבל עם הקוד שלך הסתדרתי מצוייןאולי כדאי להוסיף שורה שתמחק את הקבצים בסיומת DOC לאחר ההמרה
תודה רבה -
@שליו כתב בבקשת מידע | האם יש אפשרות להפוך קבצים מרובים של DOC לקבצי DOCX:
אולי כדאי להוסיף שורה שתמחק את הקבצים בסיומת DOC לאחר ההמרה
לי נראה שלא כדאי, עדיף למחוק אותם רק אחרי שבדקת שאכן התוצאה היא הרצויה, והDOCX יצאו כמו שצריך, ובכל אופן אתה יכול למחוק אותם מאד בקלות, בסייר קבצים תעשה שיסדר לפי סוג קובץ, ואז יסדר בנפרד הDOC מהDOCX
-
@menajemmendel
אתה צודק
אבל ממילא אין לי כוח לבדוק אחד אחדאני בקשתי את זה בשביל הספרייה התורנית שרבים מקבצי הוורד שם עם סיומת docx
ראיתי שכתבת שאתה נציג, לכן אני מיידע אותך -