답변:
Office 마이그레이션 계획 관리자를 확인하십시오.
툴킷에는 OFC (Office 파일 변환기)도 포함되어있어 이진 형식에서 OpenXML 형식으로 대량 문서 변환이 가능합니다. ( 테크넷 )
Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint File Formats
OFC가 작동하려면 OFC가 필요합니다 .
두 도구 모두 더 이상 지원되지 않는 것 같습니다.
매크로를 사용하여 폴더 내의 파일을 처리하여 xls에서 xlsx로 변환하는 것이 좋습니다. 이 코드는 파일이 모두 하나의 폴더 내에 있고 모든 xls 파일을 변환해야한다고 가정하지만 개별 파일을 선택하려면이 코드를 업데이트 할 수 있습니다.
이 코드는 Excel 2007 이상 통합 문서에서 실행해야합니다.
Option Explicit
' Convert all xls files in selected folder to xlsx
Public Sub convertXLStoXLSX()
Dim FSO As Scripting.FileSystemObject
Dim strConversionPath As String
Dim fFile As File
Dim fFolder As Folder
Dim wkbConvert As Workbook
' Open dialog and select folder
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Show
On Error Resume Next ' Prevent debug mode if user cancels selection
strConversionPath = .SelectedItems(1)
On Error GoTo 0 ' Re-enable default error handling
End With
Set FSO = New Scripting.FileSystemObject
' Check if the folder exists
If FSO.FolderExists(strConversionPath) Then
Set fFolder = FSO.GetFolder(strConversionPath)
' Disable confirmation dialogs (to prevent "unsaved changes" dialog popping up)
' and screen updates (to speed up conversion)
Application.DisplayAlerts = False
Application.ScreenUpdating = False
' Loop through files, find the .xls files
For Each fFile In fFolder.Files
If LCase$(Right(fFile.Name, 4)) = ".xls" Then
' Open temporary workbook
Set wkbConvert = Workbooks.Open(fFile.Path)
' Save as OpenXML workbook - if your .xls files contain macros
' then change to FileFormat:=xlOpenXMLWorkbookMacroEnabled
wkbConvert.SaveAs FSO.BuildPath(fFile.ParentFolder, _
Left(fFile.Name, Len(fFile.Name) - 4)) & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook
wkbConvert.Close SaveChanges:=False
' Delete original file
fFile.Delete Force:=True
End If
Next fFile
' Re-enable confirmation dialogs and screen updates
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End If
End Sub
참고 : 변환중인 파일에 매크로가 포함되어 있으면를
FileFormat:=xlOpenXMLWorkbook
읽어 업데이트해야합니다FileFormat:=xlOpenXMLWorkbookMacroEnabled
. 또는 변환 된 파일에 매크로 코드가 필요하지 않은 경우에는 그대로두고 xlsx 형식으로 변환 할 때 매크로를 제거합니다.
그래서 .xls 파일을 .xlsx로 자동 변환하는 간단한 VBScript를 작성했습니다.
./convert-xls-xlsx.vbs {.xls 파일이 포함 된 폴더 경로}
convert-xls-xlsx.vbs :
인수 = WScript.Arguments 설정 strPath = 인수 (0) strPath = CreateObject ( "Scripting.FileSystemObject"). GetAbsolutePathName (strPath) objExcel = CreateObject ( "Excel.Application") 설정 objExcel.Visible = 거짓 objExcel.DisplayAlerts = 거짓 objFso = CreateObject ( "Scripting.FileSystemObject") 설정 objFolder = objFso.GetFolder (strPath) 설정 objFolder.Files의 각 objFile에 대해 fileName = objFile.Path (objFso.GetExtensionName (objFile.Path) = "xls")이면 objWorkbook = objExcel.Workbooks.Open (fileName) 설정 saveFileName = 바꾸기 (fileName, ". xls", ". xlsx") objWorkbook.SaveAs saveFileName, 51 objWorkbook.Close () objExcel.Application.DisplayAlerts = True 끝 경우 다음 MsgBox "완료된 변환"
참고 : 폴더 경로에 공백이 있는지 확인하십시오. 경로 사이에 공백이 있으면 경로를 따옴표로 묶으십시오.
하위 SaveAllAsXLSX () 문자열로 Dim strFilename 문자열로 Dim strDocName 문자열로 Dim strPath 통합 문서로 Dim wbk 파일 대화 상자로 Dim fDialog 정수로 Dit intPos 문자열로 희미한 strPassword 문자열로 Dim strWritePassword 문자열로 희미한 varA 문자열로 희미하게 varB 새로운 컬렉션으로 Dim colFiles 변형으로 희미한 vFile fDialog = Application.FileDialog (msoFileDialogFolderPicker) 설정 fDialog로 .Title = "폴더를 선택하고 확인을 클릭하십시오" .AllowMultiSelect = True .InitialView = msoFileDialogViewList .Show -1이면 MsgBox "사용자 별 취소",, "폴더 내용 나열" 서브 종료 끝 경우 strPath = fDialog.SelectedItems.Item (1) Right (strPath, 1) "\"이면 strPath = strPath + "\" 끝 Left (strPath, 1) = Chr (34)이면 strPath = 중간 (strPath, 2, Len (strPath)-2) 끝 경우 obj = CreateObject ( "Scripting.FileSystemObject") 설정 recursiveDir colFiles, strPath, "* .xls", True colFiles의 각 vFile Debug.Print vFile strFilename = v 파일 varA = 오른쪽 (strFilename, 3) (varA = "xls"또는 varA = "XLSX") 인 경우 wbk = Workbooks.Open (파일 이름 : = str 파일 이름) 설정 wbk.HasVBProject 인 경우 wbk.SaveAs 파일 이름 : = str 파일 이름 및 "m", 파일 형식 : = xlOpenXMLWorkbookMacroEnabled 그밖에 wbk.SaveAs 파일 이름 : = str 파일 이름 & "x", 파일 형식 : = xlOpenXMLWorkbook 끝 경우 wbk. 닫기 저장 변경 사항 : = 거짓 obj.DeleteFile (strFilename) 끝 경우 다음 vFile 엔드 서브 퍼블릭 함수 RecursiveDir (colFiles as Collection, _ 문자열로 strFolder, _ 문자열로 strFileSpec, _ 부울로 하위 폴더 포함) 문자열로 희미한 strTemp Dim colFolders As New Collection 변형으로 희미한 vFolderName 'strFileSpec과 일치하는 strFolder의 파일을 colFiles에 추가 strFolder = 트레일 링 슬래시 (strFolder) strTemp = Dir (str 폴더 및 strFileSpec) strTemp vbNullString 동안 수행 strFile 및 strTemp 추가 strTemp = Dir 고리 bIncludeSubfolders 인 경우 'strFolder의 서브 디렉토리 목록이있는 colFolders 작성 strTemp = Dir (strFolder, vbDirectory) strTemp vbNullString 동안 수행 If (strTemp ".") 그리고 (strTemp "..") 그렇다면 If (GetAttr (strFolder & strTemp) And vbDirectory) 0 그렇다면 colFolders. strTemp 추가 끝 경우 끝 경우 strTemp = Dir 고리 colFolders의 각 하위 폴더에 대한 'Call RecursiveDir colFolders의 각 vFolderName에 대해 RecursiveDir (colFiles, strFolder & vFolderName, strFileSpec, True) 호출 다음 vFolderName 끝 경우 최종 기능 문자열로 공용 함수 TrailingSlash (strFolder As String) Len (strFolder)> 0이면 Right (strFolder, 1) = "\"이면 후행 슬래시 = strFolder 그밖에 TrailingSlash = strFolder & "\" 끝 경우 끝 경우 최종 기능
MsOffice를 설치 한 경우이 도구는 빠른 수정을 위해 다운로드 할 가치가 있습니다.
http://www.softinterface.com/Convert-XLS/Features/Convert-XLS-To-XLSX.htm
폴더를 선택하여 xls 파일이 변환 된 것을 확인하면 MS Office를 사용하는 변환 도구 옵션을 자체 변환기가 아닌 변환으로 선택해야합니다.
자체 변환기를 사용하면 셀의 색상이 손실되고 낱장 용지가 나오는 것처럼 보입니다. 변환기로 MsOffice를 사용하면 제대로 작동하는 것 같습니다. 빠른 수정을위한 좋은 도구입니다.