엑셀csv
-
Unreal Engine 4(UE4)를 위한 xlstocsv (UTF-8)매크로2020.05.21
Unreal Engine 4(UE4)를 위한 xlstocsv (UTF-8)매크로
2020. 5. 21. 23:14
Unreal Engine 4는 xls로 된 스트링 테이블이 바로 임포트 되지 않기에 CSV로 변환해주는 작업이 필요하다.
하지만 엑셀에서 다른 이름으로 저장하기를 통해 csv를 저장하는경우 ANSI로 저장되기 때문에 텍스트가 다 깨지는 현상이 발생한다.
이를 해결하기 위해서는 csv를 UTF-8로 저장 해주어야 하는데 UTF-8로 바로 저장하는 옵션이 없어 매크로를 사용하여야 한다.
인터넷에서 떠도는 코드를 몇개 사용해보았지만 중괄호나 쉼표가 잘리는 문제가 있어 해당 부분을 수정한 매크로를 공유한다.
해당 매크로를 모듈에 넣어주고 버튼에 연결해주면 DefaultTable이라고 적힌 시트를 해당 파일이 있는 폴더에 csv로 Export 해준다.
Public Sub WriteCSV()
Set wkb = Worksheets("DefaultTable")
Dim FullCSVName As String
Dim MaxCols As Integer
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = 2 ' text/string data
BinaryStream.Charset = "UTF-8"
BinaryStream.Open
For r = 1 To 10000
s = ""
c = 1
If IsEmpty(wkb.Cells(r, c).Value) Then
Exit For
End If
While Not IsEmpty(wkb.Cells(r, c).Value)
s = s & """" & wkb.Cells(r, c).Value & """" & ","
c = c + 1
Wend
BinaryStream.WriteText s, 1
Next r
BinaryStream.SaveToFile Replace(ThisWorkbook.FullName, ".xlsm", ".csv"), 2
BinaryStream.Close
MsgBox "CSV generated successfully"
End Sub