SELF-IMPROVEMENT/자기계발

여러개의 Xls 파일을 Xlsx 파일로 변환하기(python,매크로 등) +엑셀서식

DS지니 2022. 10. 24. 16:36
728x90
반응형

Excel 97-2003 워크시트(Xls)를 엑셀 최신버전(Xlsx)로 변환하는 방법은 여러가지가 있다.

나 같은 경우엔, 많은 파일을 동시에 변환할 수 있어야하며 기존 엑셀 서식(글꼴, 폰트, 셀 배경색 등)이 그대로 유지되어야했다.

그리고 특정 프로그램을 다운받고 싶지 않았기 때문에 나에게는 5번 매크로를 이용한 방법이 제일 괜찮았다.

 

1. 'xls2xlsx.exe' 프로그램 사용

엑셀 프로그램 실행없이 xls 파일과 xlsx 파일 여러개를 한번에 상호변환할 수 있음. 다운로드 필요. 일본어.

엑셀 서식 유지될 것으로 예상.

 

2. 엑셀  실행 (1개씩 변환)

xls 파일 1개 열기 -> 파일 -> 정보 -> 변환(호환모드) -> 확인

엑셀 서식 유지 가능.

 

3. python 사용

파이썬 코드를 사용해 xls 파일들을 불러와 xlsx 파일들로 저장. 

엑셀 서식 유지 안됨.

import pandas as pd
import os
import glob

file_list = glob.glob(r'D:/xls파일/*.xls') #폴더 내 모든 파일 가져오기
file_list

concat = []
for file in file_list:
    df = pd.read_excel(file)
    df.to_excel("D:/xlsx파일/"+file.split('\\')[1][:-4]+".xlsx") #파일이름 그대로 다른 폴더에 저장

 

4. Google에서 문서 변환기 사이트 찾아서 이용

구글에서 많은 무료 문서 변환기 사이트를 찾을 수 있다. 많은 파일을 변환하기에 제약이 있을 수 있음.

 

 

5. 매크로 사용 (서식 유지, 여러개 파일 동시 가능)

여러개 파일을 동시에 변환 가능. 엑셀 서식 유지 가능.

 

1) 빈 폴더(xlsx) 생성

기존 폴더(xls)에 들어있는 파일들을 변환해 빈 폴더(xlsx)로 옮길 예정.

2) 매크로(Microsoft Visual Basic for Applications, VBA)

 A. 빈 Excel 열기 -> 새 통합 문서 -> Alt + F11 키 -> 삽입 -> 모듈 -> 하단의 VBA 코드 입력 -> F5 키

Sub ConvertToXlsx()
'Updateby Extendoffice
Dim strPath As String
Dim strFile As String
Dim xWbk As Workbook
Dim xSFD, xRFD As FileDialog
Dim xSPath As String
Dim xRPath As String
Set xSFD = Application.FileDialog(msoFileDialogFolderPicker)
With xSFD
.Title = "Please select the folder contains the xls files:"
.InitialFileName = "C:\"
End With
If xSFD.Show <> -1 Then Exit Sub
xSPath = xSFD.SelectedItems.Item(1)
Set xRFD = Application.FileDialog(msoFileDialogFolderPicker)
With xRFD
.Title = "Please select a folder for outputting the new files:"
.InitialFileName = "C:\"
End With
If xRFD.Show <> -1 Then Exit Sub
xRPath = xRFD.SelectedItems.Item(1) & "\"
strPath = xSPath & "\"
strFile = Dir(strPath & "*.xls")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Do While strFile <> ""
If Right(strFile, 3) = "xls" Then
Set xWbk = Workbooks.Open(Filename:=strPath & strFile)
xWbk.SaveAs Filename:=xRPath & strFile & "x", _
FileFormat:=xlOpenXMLWorkbook
xWbk.Close SaveChanges:=False
End If
strFile = Dir
Loop
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

B. 첫번째 폴더 창

Please select the folder contains the xls files.

xls 파일들이 있는 폴더 선택

C. 두번째 폴더 창

Please selcet a folder for outputting the new files.

새 폴더들을 넣을 폴더 선택

 

3) 끝

실행이 끝나면 xlsx 폴더 확인하기.

 

 

 


참고 사이트 (매크로)

https://ko.extendoffice.com/documents/excel/1349-excel-batch-convert-xls-to-xlsx.html

728x90
반응형

'SELF-IMPROVEMENT > 자기계발' 카테고리의 다른 글

[복습] 기술 면접  (0) 2021.10.22
[책] 그로스해킹 - 용어정리  (0) 2021.08.15
추천 시스템(Recommendation System)  (0) 2021.08.05
ML/DL 커리어를 위한 조언  (0) 2021.08.05