따옴표로 묶은 숫자 문자열을 문자열이 아닌 숫자 값으로 처리하는 Excel CSV 가져 오기


13

데이터를 CSV 파일로 내보내는 웹 응용 프로그램이 있습니다. 해당 CSV 파일의 행 예는 다음과 같습니다.

28,"65154",02/21/2013 00:00,"false","0316295","8316012,8315844","MALE"

이미지를 게시 할 수 없으므로 결과를 Excel로 설명해야합니다. "0316295"필드가 숫자로 바뀌고 선행 0이 사라집니다. "8316012,8315844"는 하나의 단일 숫자 인 83,160,128,315,844로 해석됩니다. 즉, 의도 한 결과가 아닙니다.

나는 사람들이 그런 경우에 작은 따옴표를 추천하는 것을 보았지만 실제로는 효과가 없습니다.

28,"65154",02/21/2013 00:00,"false","'0316295","'8316012,8315844","MALE"

작은 따옴표는 Excel의 셀에서 항상 볼 수 있지만 선행 작은 따옴표가있는 숫자를 직접 입력하면 문자열이있는 작은 따옴표가 아닌 원하는 문자열 만 표시됩니다.

가져 오기는 입력하는 것과 같지 않습니다.

여기에 해결책이 있습니까?


LibreOffice 또는 그 중 하나를 사용하여 가져올 수 있습니까? 방금 수입하고있어 : 28 65154 02/21/2013 00:00 false 0316295 8316012,8315844 MALE (당신이 그것을 읽을 수 있다면 ...?)
FreudianSlip

이 질문은 유사하고 좋은 솔루션을 제공합니다 : superuser.com/questions/234997/...
브래드 패튼

@FreudianSlip 아니요, 타사 솔루션을 사용할 수 없습니다. 사용자는 "CSV 다운로드"버튼을 클릭하면 파일이 Excel에서 열립니다. 그것이 우리가 다루고있는 환경입니다. 정말 복잡하지 않습니다.
Michael Oryl

@Brad 나는 이전에 솔루션을 찾고있는 게시물을 읽었습니다. 여기서 작은 따옴표 옵션을 얻었습니다. Excel에서 CSV에서 가져올 때 셀 자체에 따옴표가 표시되기 때문에 마음에 들지 않습니다 (같은 것을 직접 입력해도 표시되지 않더라도).
Michael Oryl

최소한 웹앱을 제어하십니까? 사용자로부터 솔루션을 투명하게 구현하는 방법은 무엇입니까? 제대로 쉼표로 값을 처리 할 수 있도록 내 대답을 업데이트 한
알렉스 P.에게

답변:


10

이 작동합니다

28,"65154",02/21/2013 00:00,"false",="0316295","=""8316012,8315844""","MALE"

아니요, 두 숫자로 값을 엉망으로 만듭니다. 닫는 따옴표없이 = "1234567을 얻습니다.하지만 더 간단한 숫자에는 적용됩니다.
Michael Oryl

1
웹 애플리케이션을 제어하는 ​​경우 SYLK en.wikipedia.org/wiki/SYmbolic_LinK_(SYLK) 형식으로 내보내기를 구현할 수 있습니다. 데이터 표현을 훨씬 잘 제어 할 수 있습니다. 그렇지 않다면-쉽게 변환기 스크립트를 만들 수 있습니다
Alex P.

2
제대로 쉼표로 값을 처리 할 수 있도록 답을 업데이트
알렉스 P.에게

쉼표로 구분 된 값을 올바르게 처리했습니다. 감사.
Michael Oryl

감사. 이 솔루션은 16 진 숫자 가져 오기 관련 문제도 해결했습니다. Excel은 00E30 (0 * 10 ^ 3)으로 바뀌고 과학 표기법 (0.00E + 00)으로 표시합니다. 실제로는 "00e3"없이도 동일하게 수행됩니다 =. 그러나 ="00e3"완벽하게 작동합니다. (Excel 2010에서 CSV 열기)
mpag

12

선행 0을 유지하기 위해 텍스트 가져 오기 마법사에서 해당 특정 열의 형식을 텍스트로 설정할 수 있습니다.

  1. 데이터 탭 으로 이동하고 텍스트에서를 클릭 하여 텍스트 가져 오기 마법사 를 시작하십시오 .
  2. 가져올 CSV 파일을 선택하십시오.
  3. 구분을 선택하고 다음을 누르 십시오 .
  4. 탭을 선택 취소하십시오 (기본값). 쉼표를 선택하십시오 . 텍스트 한정자가 로 설정되어 있는지 확인하십시오 ". 다음을 누르 십시오 .
  5. 여기에서 형식을 지정할 수 있습니다 . 선행 0을 유지하려는 열의 헤더를 클릭하십시오. 텍스트를 선택하십시오 . (아래 이미지 참조)

    여기에 이미지 설명을 입력하십시오

  6. 히트 마침을 및 다음 데이터에 적합한 위치를 선택합니다. 샘플 결과 :

    여기에 이미지 설명을 입력하십시오

편집 : 다른 방법이 있습니다 ; 웹앱을 .CSV 대신 쉼표로 구분 된 .TXT 파일로 내 보냅니다 (또는 내 보낸 파일을 저장 한 후 파일 확장자 만 변경). 이렇게하면 Excel에서 파일을 열 때 가져 오기 마법사를 거치게됩니다. 추가 이점으로, 사용자가 원래 원시 데이터를 수정하거나 조작 할 가능성을 줄입니다.


1
그렇습니다. 비교할 때 웹 앱에서 CSV 생성기 링크를 클릭하면 Excel이 자동으로로드 할 때 최종 사용자에게는 실제로 편리하지 않습니다. 위에서 언급 한 문제가 있습니다. CSV 파일은 Excel에서 열리도록 설정되어 있으며 그 당시에는 Excel에서 옵션을 제공하지 않습니다. 그냥로드합니다. 그래도 지적 해 주셔서 감사합니다.
Michael Oryl

1
이 또 다른 방법은, 그러나 귀하의 경우 가능하다면 나도 몰라 님의 웹 응용 프로그램 수출이 쉼표로 구분 된 .TXT대신 .CSV(또는 내 보낸 파일의 파일 확장명을 변경). 이런 종류의 "강제"사용자는 파일을 열 때 가져 오기 마법사를 거치게됩니다.
Ellesa

아주 좋은 지적입니다. 지적 해 주셔서 감사합니다. 나중에 유용 할 수 있습니다.
Michael Oryl

4

Excel은 탭 문자로 시작하는 숫자 값을 텍스트로 처리합니다.

<tabchar>000000100000200000,ABC,DEF

다음과 같이 나타납니다.

000000100000200000|ABC|DEF

| 셀 경계입니다 (설명 목적으로). 예를 들어, 시스템에서 utf-8 문자 세트를 사용하여 CSV 파일을 생성하는 경우 &#x0009;숫자 값 앞에 (Tab Char in Hex)를 추가하여 Excel에서 텍스트로 해석하도록 할 수 있습니다.


16 진 표현에서 세미콜론 앞의 공백을 제거하십시오. 답변에서 16 진수 탭 문자를 이스케이프 처리하는 방법을 모르겠으므로 의도적으로 잘못 입력했습니다.
Madeyedexter

1
나는 탈출했다. 그리고 새로운 것을 배웠습니다. 감사합니다. 나는 이것을 작업을 위해 내가 좋아하는 주제에 추가해야한다. :)
nixda

3

CSV 열이 다음 형식이 아닌 경우 Excel은 CSV 필드의 형식을 자동 감지합니다.

"=""Data Here"""

이것은 Google 시트에서도 작동합니다.


0

Excel에서 "데이터-> 외부 데이터 가져 오기-> 파일에서 텍스트 가져 오기"기능을 사용하여 텍스트로 표시해야합니다. @Kaze가 언급 한 텍스트 가져 오기 마법사입니다.

사용자가 아무 것도하지 않아도 입력에서 텍스트로 숫자를 텍스트로 표시하도록하는 유일한 방법은 Excel 파일을 출력하고 "사용자 정의 숫자 형식"을 지정하는 것입니다. XLS 내보내기 라이브러리를 사용하는 것이 좋습니다. CSV 파일에 구성 텍스트 줄을 추가하는 것만 큼 간단하지는 않습니다.


0

엉망인 값에 클린 기능을 사용해보십시오. 예를 들어 = clean ( "12345678901234567890")입니다. 숫자, 날짜, 시간 등을 위해 저에게 효과적입니다.이 기능이 새로운 버전 등에서 작동하지 않을 수있는이 기능의 목적이 아니기 때문에주의를 기울일 것입니다.

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