1. FAQ
  2. 엑셀(Excel)
  3. AfterEffects
  4. Premiere
  5. Photoshop
  6. ETC

이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.

csv import 관련 문의

엑셀일반 조회 수 10448 추천 수 0 2016.02.23 15:43:27

안녕하세요

엑셀 파일 불러오기를 대량으로 할일이 있어 문의 드립니다.


예를 들어 c:\test\1.csv , c:\test\2.csv , c:\test\3.csv , c:\test\4.csv 파일이 있다고 가정 합니다.

각 파일 내용은 다음과 같습니다.

1

"NO","DES"

"1","asdf"

"2","ㅁㄴㅇㅀ"

2

"NO","DES"

"2","ㅁㄴㅇㅀ"

3

"NO","DES"

"2","ㅁㄴㅇㅀ"

4

"NO","DES"

"2","ㅁㄴㅇㅀ"


위와 같이 있을때 1 2 파일은 SHEET1 에 A1 D1 부터 시작 하여 입력 되고

3 4 파일은 SHEET2 에 A1 D1 부터 시작 하여 입렵 되도록 

VBA 를 구현 하려고 하는데 어려네요


인터넷이 CSV 를 불러오는 쏘스들이 있는데 조금씩 손을 대야 하는데 잘 모르겠어서요


우선 [ , ] 은 구분 해야 합니다.


--


추가로 혹시 CSV 파일을 불러 올때 문자코드를 변경 하려고 하면 어떻게 해야 하나요

python 에서 csv 를 다운 받다 보니 문자코드가 엑셀에서 변환을 한번 해줘야 정상적으로 뜨는 것 같더라고요.


댓글 '3'

[레벨:1]지살

2016.02.23 15:51:40
*.136.154.75

안녕하세요

어찌어찌 하다가 완성은 했는데 문자열이 깨져서 나와서요


Sub test()

    Dim FilePath As String

    Dim LineFromFile As String

    Dim LineItems() As String

    Dim row_number As Integer

    

    'FilePath = Application.DefaultFilePath & "\authors.csv"

    FilePath = "C:\jhj\ze.csv"

    Open FilePath For Input As #1


    row_number = 0

    Do Until EOF(1)

        Line Input #1, LineFromFile

        LineItems = Split(LineFromFile, ",")

        ActiveCell.Offset(row_number, 0).Value = LineItems(0)

        ActiveCell.Offset(row_number, 1).Value = LineItems(1)

        ActiveCell.Offset(row_number, 2).Value = LineItems(2)

        row_number = row_number + 1

    Loop

    Close #1


End Sub


혹시 위 에서 문자열 한글 문자열을 utf8 euc-kr 등을 바꾸려면 어떻게 해야 하는지 문의 드립니다.

profile

[레벨:30]아별

2016.06.21 13:50:45
*.104.145.90

엑셀 파일 내용을 CSV파일로 UTF-8로 인코딩해서 export하는 소스가 있습니다.

http://slway000.tistory.com/17

https://techspread.wordpress.com/2012/12/05/export-excel-to-csv-in-unicode-utf-8-using-macro-vba/


참고하시기 바랍니다.


Public Sub WriteCSV()
Set wkb = ActiveSheet
Dim fileName As String
Dim MaxCols As Integer
fileName = Application.GetSaveAsFilename("", "CSV File (*.csv), *.csv")

If fileName = "False" Then
End
End If

On Error GoTo eh
Const adTypeText = 2
Const adSaveCreateOverWrite = 2

Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Charset = "UTF-8"
BinaryStream.Type = adTypeText
BinaryStream.Open

For r = 1 To 10
s = ""
c = 1
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 fileName, adSaveCreateOverWrite
BinaryStream.Close

MsgBox "CSV generated successfully"

eh:

End Sub 


profile

[레벨:30]아별

2016.06.21 14:09:23
*.104.145.90

UTF-8로 읽고 쓰기

http://blog.naver.com/atmyhome/90154596931


[이하 위 링크에서 퍼온 코드 ]

Function TextStrimRead(strPathName As String) As String
Dim objStream As Object
    Set objStream = CreateObject("ADODB.Stream")
    objStream.Open
    objStream.Type = 2 'adTypeText
    objStream.Charset = "UTF-8"
    objStream.LoadFromFile strPathName
    TextStrimRead = objStream.ReadText
    Set objStream = Nothing
End Function

   
Sub TextStrimWrite(strPathName As String, strString As String)
Dim objStream As Object
    Set objStream = CreateObject("ADODB.Stream")
    objStream.Open
    objStream.Type = 2 'adTypeText
    objStream.Charset = "UTF-8"
    objStream.WriteText strString
    objStream.SaveToFile strPathName, 2 'adSaveCreateOverWrite
    Set objStream = Nothing
er:
End Sub

 

Sub test()
    '경로는 자신의 경로로 수정하세요.

    'UTF-8형식의 Sample1.txt 파일이 있어야 실행됩니다.
    '텍스트 파일을 읽어오는 예시
    Debug.Print TextStrimRead("C:\Documents and Settings\cjj_biz\바탕 화면\Sample1.txt")
    '
    '텍스트 파일에 쓰는 예시
    TextStrimWrite "C:\Documents and Settings\cjj_biz\바탕 화면\Sample1.txt", "연습입니다."
End Sub


문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 공지 [공지] 아별닷컴의 엑셀 질문방 폐쇄합니다. 카페 질문방 이용하세요.. imagefile [레벨:30]아별 2015-04-23 47548
782 이미지,도형 등 엑셀 이미지 첨부 질문... _ 이미지 첨부시 파일 연결로 엑셀 파일 용량 줄이는 방법 [4] [레벨:2]큰아빠에요 2012-08-28 8640
781 홀수열만 삭제하는 방법 [4] [레벨:1]나고자 2010-06-16 8628
780 엑셀에서 필터하고 나서 보이는 부분만 복사해서 그대로 붙여넣고 싶은데.. [2] [레벨:2]시시오 2009-12-21 8622
779 셀서식(표시형식) 셀서식이 강제로 변경되는거 같습니다. [레벨:1]곤냥이 2015-10-03 8597
778 아별툴관련질문 아별 자동 암호설정툴 버그발생 관련 문의드립니다. imagefile [레벨:1]달과6펜스 2016-04-01 8578
777 필터링 설정후 복사와 관련된 질문 드립니다. [1] [레벨:1]사고뭉치잭바우어 2009-09-11 8547
776 엑셀일반 필터링된 값에 붙여넣기를 할 경우... imagefile [4] [레벨:6]파이스 2012-06-14 8468
775 엑셀일반 엑셀 시트에 바탕그림넣기 [5] [레벨:2]시나브로 2012-06-19 8428
774 수량산출서 합계 구하기 imagefile [2] [레벨:1]뮤즈 2010-01-11 8424
773 이거 문제좀.... file [1] [레벨:1]궁금한것많은아이 2010-05-22 8419
772 이미지,도형 등 VBA로 matlab에 있는 imagesc 함수 구현 방법 [레벨:1]느껴져 2015-09-19 8346
771 감가상각비 계산(다시 올려요~) file [3] [레벨:3]jjay98 2010-04-21 8308
770 탭 병합하기 질문 ==> 시트 병합, 시트 합치기 [1] 콩쥐 2010-01-04 8190
769 엑셀일반 엑셀 시트 캡쳐시 스크롤바 _ 엑셀 화면 캡쳐 또는 이미지로 저장하기 [2] [레벨:2]시나브로 2012-06-19 8179
768 피벗테이블 피벗테이블에 매크로 이용해서 사진 삽입하기 imagefile [레벨:1]엑셀초봉 2016-07-11 8147
767 엑셀일반 [긴급문의] 엑셀의 특정셀의 값들이 사라집니다. [1] [레벨:1]용님 2015-09-02 8143
766 VBA 셀 복사 후 아래셀에 수식 및 메모 붙여넣기 관련 [레벨:4]고수가되고파 2015-04-17 8133
765 시트별 합계 방법 file [4] 이구람 2010-04-02 8107
764 엑셀 인쇄하면 그림파일이 출력이 안되요.. [1] [레벨:2]만쥬 2011-07-06 8105
763 사진넣기 file [3] [레벨:4]우보천리 2009-07-29 8092