일부 내용 필드에서 Excel에서 CSV 파일을 쉼표로 가져 오려면 어떻게해야합니까?


13

Excel에서 CSV 파일 을 가져 오려면 어떻게해야 합니까?

파일

CSV라고 주장하는 파일이 있습니다. 여기에는 10 개의 필드가 포함되어 있으며 모두 큰 따옴표 (예 : 날짜 및 숫자)로 묶여 있습니다.이 필드 중 2 또는 3은 쉼표를 포함합니다 . 그러나이 필드의 데이터도 따옴표로 묶습니다.

문제

이 파일을 열려고하면 Excel은 따옴표를 완전히 무시하고 따옴표가 데이터의 일부라고 가정합니다.

따라서 쉼표가 포함 된 필드를 여러 열로 분할합니다.

적어도 나에게는 나쁘다.

데이터 예

"20051", "", "2009 9 월 30 일 02:53:23", "SOMETEXT", "", "5000", "2000000", "2008-99999--99999, 2008-unk-unk", "191 -SOMETEXT-SOMETEXT, 192-SOMETEXT-SOMETEXT, 193-SOMETEXT-SOMETEXT, 194-SOMETEXT-SOMETEXT, 195-SOMETEXT-SOMETEXT, 196-SOMETEXT-SOMETEXT ","45-SOMETEXT-SOMETEXT, 1162-SOMETEXT-SOMETEXT, 140 -SOMETEXT-SOMETEXT, 141-SOMETEXT-SOMETEXT "
"20052", "SOMETEXT", "2009 년 9 월 08 일 07:56:50", "SOMETEXT", "", "50000", "5000000", "2007-99999-99999", "146-SOMETEXT-SOMETEXT, 145 -SOMETEXT-SOMETEXT, 147-SOMETEXT-SOMETEXT, 148-SOMETEXT-SOMETEXT ","103-SOMETEXT-SOMETEXT, 1131-SOMETEXT-SOMETEXT "

내가 무엇을 시도 했습니까?

가져 오기 기능을 사용하여 구분 기호 등을 지정했지만 도움이되지 않는 것 같습니다.

"Text Delimiter"를 큰 따옴표에서 "{none}"으로 바꾸고 다시 시도했습니다. 이것은 첫 번째 열에 만 영향을 미치는 것으로 보입니다. 다른 열을 클릭하고이 설정을 각 열에 적용 할 수있는 경우이 방법을 다시 사용할 수 있습니다. 그러나 이것은 사실이 아니며 열 전체에서 작동하는 것으로 보입니다.

다른 무엇을 시도 할 수 있습니까?


1
어떤 Excel 버전입니까? 그리고 완전히 패치 되었습니까?
harrymc

나는 2007에 대해 잘 모르겠지만, 나는 확신 2002 년 현재까지 완벽하게까지했다있어 2002 년과 2007 년에이를 보았다
로리 베커

CSV에 대한 링크를 제공 할 수 있습니까? 아니면 문제를 보여주는 축소 버전입니까?
Josh Comley

추가 예제 데이터 위
로리 베커

답변:


13

방금 문제를 복제 한 빠른 테스트를 시도했습니다.

test.csv“123”,“4,5,6”으로 Word에서 한 줄 CSV (스마트 따옴표를 사용)를 만들고 설명대로 Excel에서 열었습니다.

"및"를 "로 바꾸십시오.


샘플로 연주 한 결과 Excel은 필드 사이의 공백을 좋아하지 않습니다.

예를 들어

"20051", "", "2009 Sep 30 02:53:23", ...

너는 원해

"20051","","2009 Sep 30 02:53:23",...

괜찮은 정규식 대체는 그것을 처리 할 수 ​​있어야합니다

Find:    |("[^"]*",) |
Replace: |\1|

(시각적 단서의 파이프 문자)

또는 .Net 코드에 액세스 할 수 있으면 간단하게 수정하십시오. ;-)

또한 Arjan이 지적했듯이 셀 A1에 BOM 및 주변 qout이 포함되지 않도록 파일을 UTF-8에서 ANSI로 변환해야 할 수도 있습니다.

국제 문자를 처리하지 않는 ANSI 인코딩 CSV와 Excel에서 올바르게 처리하지 않는 UTF 인코딩 CSV의 Catch 22를 보았습니다. CSV를 관리하는 동안 해결책을 찾지 못했습니다. 국제 문자 지원이 필요한 경우 XML (또는 기본 XLS) 형식은 간소 한 비용으로 갈 수있는 유일한 방법으로 보입니다.


똑똑한 따옴표가 없습니다. 이 파일은 .Net으로 작성된 프로그램에서 std 인용 부호를 사용하도록 생성되었습니다.
Rory Becker

UTF-8 파일을 다르게 인코딩해야한다고 말하지 않았습니다. 그러나 UTF-8을 가져올 때 실제로 인코딩이 무엇인지 Excel에 알려야합니다. 그리고 UTF-8은 긴 인코딩 목록에서 아래 어딘가에 숨겨져 있습니다.
Arjan

많은 UTF-8 인코딩 CSV 파일을 가져 왔습니다. 그래도 BOM이 있는지 확실합니다.
Arjan

@lumbarious : 당신은 스타입니다! 나는 엑셀이 :( 처리 할 수없는 믿을 수 없어 ... 완벽하게 작동
로리 베커

1
예, 필드 사이의 공백은 Excel 2011을 완전히 혼란스럽게합니다. 공백을 제거하면 문제가 해결되고 Excel에서 데이터의 일부로 인용 부호가 포함되지 않습니다. 내 생각에 큰 따옴표는 데이터가 쉼표에 직접 인접한 경우에만 데이터를 구분한다는 사양이 있습니다.
Peter Gluck 5

9

이 문제는 몇 년 동안 저를 괴롭 혔습니다. 방금 솔루션을 발견했으며 위의 답변에서 암시되었지만 명시 적으로 철자가 아닙니다.

쉼표 뒤의 공간입니다!

이것은 엑셀로 가져 오지 않습니다.

HEADER1, HEADER2
"1,000", "2,000"

동안

HEADER1,HEADER2
"1,000","2,000"

공장!


3
슈퍼 유저에 오신 것을 환영합니다! 이 답변은 도움이되고 분명하게 작성되었습니다. 당신의 공헌에 감사하고 우리는 당신이 주위에 붙어 있기를 바랍니다.
user1717828

야아! 수락 된 답변에는이 답변과 달리 묻힌 질문에 대한 실제 답변이 있습니다. op는 스마트 인용 부호를 사용하지 않습니다.
dardub


2

이 파일을 열려고하면 Excel은 따옴표를 완전히 무시하고 따옴표가 데이터의 일부라고 가정합니다. 따라서 쉼표가 포함 된 필드를 여러 열로 분할합니다.

실수로 lumbarius suggested 와 같은 스마트 인용구를 사용하지 않고 Windows를 사용한다고 가정하는 경우 지역 설정 때문일 있습니다. 파일»열기를 두 번 클릭하거나 사용하면 Excel에서 세부 정보를 요구하지 않고 이러한 설정을 사용합니다.

그래도 수동으로 가져 오기 기능을 호출하면 작동했을 것이므로 지역 설정을 변경하면 도움이 될 것입니다 ...


이것은 답변이 아닌 의견처럼 보입니다 ...
Metafaniel

이 제안은 내 문제를 정확하게 해결했습니다! CSV 가져 오기 (Data> From Text / CSV)를 수행하는 것이 예상대로 작동하지 않았지만 CSV 파일에서 File> Open을 방금 수행하면 정상적으로 작동합니다. 그런 다음 전체 테이블을 복사하여 다른 통합 문서에 붙여 넣을 수있었습니다.
WOUNDEDStevenJones

1

파일의 문자 인코딩을 확인 했습니까? 문자 인코딩을 UTF-8로 설정하십시오.

notepad2 를 사용하여 문자 인코딩을 변경할 수 있습니다 .


인코딩은 "서명 UTF8"로 Notepad2에 의해보고
로리 베커

그런 다음 가져 오는 동안 인코딩 목록에서 아래로 스크롤해야합니다. UTF-8은 목록에서 어딘가에 숨겨져 있습니다. (UTF-8 인코딩 CSV 파일을 사용할 필요는 없지만 입력이 이미 UTF-8 이므로 실제로 사용할 항목을 Excel에 알려 주어야합니다. 일반 따옴표 문자는 ASCII, Western 및 UTF에서 동일하게 인코딩됩니다. -8, 그러나 서명 (Byte Order Mark) 또는 다른 문자가 엉망이 될 수 있습니다.
Arjan

@ 피터 공식 링크를 위키 백과로 변경하는 이유는 무엇입니까? 전혀 말이되지 않습니까? 우리는 사람들을 너무 많이 보내지 않기를 원하며, 이것은 특히 2 살짜리 게시물에서 편집을 보증하지 않습니다.
slhck 2016 년

1

여기에 답변을 추가하면 CSV 파일에서 쉼표 뒤에 공백에 초점을 맞 춥니 다. 데이터에 필드를 인용 한 경우 Excel은이를 좋아하지 않습니다.

엑셀 좋아요 (4 열 데이터) :

a, b, c, d

그러나 (3 열의 데이터)를 좋아하지 않습니다.

a, "b, c", d

다음과 같습니다 (3 열의 데이터).

a,"b, c",d

나는 그 문제에 부딪쳤다. 나는이 쪽지에 도달 할 때까지 벽에 머리를 두드리고 있었다. 이것은 단순히 놀랍습니다. 나는 엑셀 2017을 실행하고 있으며 그
침묵은

1

나는 오늘이 문제를 겪고 나에게 맞는 해결책을 찾았다.

내 환경 / 컨텍스트 : 큰 따옴표와 쉼표가 모두 포함 된 (양식) 질문이있는 웹 페이지가 있습니다. 질문과 답변 모두 데이터베이스에서 가져와보고 목적으로 Excel 파일에 기록됩니다.

위에서 설명한 것과 같은 문제가있었습니다. 큰 따옴표와 쉼표가 포함 된 질문은 Excel에서 여러 열로 나뉘어졌습니다.

내 목적을 위해 큰 따옴표 대신 두 개의 작은 따옴표를 사용 하여 트릭을 수행했습니다.

-> 웹 사이트에서 두 개의 작은 따옴표는 사이트 방문자에게 큰 따옴표처럼 보입니다.

-> Excel 파일에서 두 개의 작은 따옴표는 보고서 데이터를 보는 사용자에게 큰 따옴표처럼 보입니다.

이 솔루션이 모든 사람에게 적합하지는 않지만 누군가에게 도움이되기를 바랍니다.


1

나는 이것을 사용하여 이것을 할 수 있었다 :

a,b,c,"=""(1,2,3)"""

네 개의 열을 제공합니다.

|  a  |   b   |   c   |   (1,2,3)   |

0

그것을하는 또 다른 방법 :

  1. LibreOffice 또는 OpenOffice Calc에서 파일을 엽니 다.
  2. UTF-8, 쉼표로 구분 된 올바른 가져 오기 옵션을 설정하십시오.
  3. 파일을 ods 또는 xls로 저장
  4. Excel에서 새 파일을 엽니 다.

이 방법으로 UTF-8과 같은 올바른 인코딩을 설정할 수 있습니다. UTF-8은 많은 Excel 버전이 BOM없이 올바르게 처리 할 수 ​​없으며 필드 내부의 일부 텍스트를 대체 할 수있는 정규식에 대해 걱정할 필요가 없습니다. 당신은 그것을 눈치 채지 못합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.