Excel 2007에서 줄 바꿈이 있는 CSV 가져오기
검색 결과를 Excel에서 열 수 있도록 CSV 파일로 내보내는 기능을 개발 중입니다. 필드 중 하나는 줄 바꿈, 쉼표, 따옴표 등이 포함될 수 있는 자유 텍스트 필드입니다. 이를 방지하기 위해 필드를 큰따옴표(")로 묶었습니다.
그러나 Excel 2007로 데이터를 가져와서 적절한 구분 기호를 설정하고 텍스트 한정자를 큰따옴표로 설정하면 줄 바꿈이 여전히 줄 바꿈에 새 레코드를 생성하여 전체 텍스트 필드가 단일 셀에 표시될 것으로 예상됩니다.
또한 CR/LF(\r\n)를 CR(\r)로만 바꾸고 다시 LF(\n)로만 바꾸어 보았지만 운이 없었습니다.
다른 사용자도 이 동작을 경험한 적이 있나요? 그렇다면 어떻게 해결하셨나요?
TIA,
-J
편집:
다음은 문제를 복제하기 위해 제가 직접 작성한 간단한 파일입니다.
ID,이름,설명
12345>,> Smith, Joe>,> Hey.< brt; 내 이름은 조입니다;
이것을 Excel 2007로 가져오면 머리글 행과 두 개의 레코드가 생깁니다. 'Smith, Joe'의 쉼표가 제대로 처리되고 있다는 점에 유의하세요. 문제를 일으키는 것은 줄 바꿈입니다.
110
20
엑셀 (최소한 Office 2007년 CSV 파일 가져와집니다 여부에 따라 다르게 동작할 수 있는 XP) 에서 열린 메뉴 또는 두 번 누르면 파일을 열어서 File->, 탐험가이다.
I have a CSV 파일, 즉 UTF-8 인코딩 및 map_layer 줄 바꿈 일부 셀입니다. 만약 내가 이 파일 열기, s # 39 에서 Excel& File->, 오픈 메뉴, " 가져오기의 CSV"; 마법사에서는 및 파일을 올바르게 임포트한 튀어나올 수 없습니다. 이 경우에도 줄 바꿈 새로 시작 행일 보도했다. 만약 내가 두 번 탐색기 창을 통해 이 파일을 열 수 있는 그런 것이 없이 제대로 열었든 개입이 마법사입니다.
제안된 솔루션 중 어느 것도 저에게 효과가 없었습니다.
실제로 작동하는 방법(모든 인코딩에서):
csv 파일에서 데이터를 복사/붙여넣기(편집기에서 열기)한 다음 을 수행하면 --이 작동하지 않습니다.
다음 탭으로 이동하여 다시 복사/붙여넣기(클립보드에 이미 있는 것과 동일한 내용)를 수행하면 자동으로 작동합니다.
이렇게 할 경우 수동으로 다운로드하십시오 리브레오피스 및 사용 리브레오피스 Calc 임포트하려면 CSV. 그 어느 때보다 훨씬 더 나은 않니다 이런 작업을 했는데, 정보기술 (it), ve 버전니다 excel i& # 39 를 절감할 수 있게 하는 경우 또는 xlsx xls 필요에 따라 전송하십시오 excel 로 된다.
39, 엑셀, 더 나은 픽스의 신앙이니라 you& 함께 할 수 있도록 하는 것으로 하고 있을 것입니다. 로케일에 종속적입니다 (병신같은 것을 우려한 때문으로 보인다, 내 소박한 여론) 할 것으로 보인다. # 39, 근데 저한텐 별로 없는 내가 don& Excel 엑셀 2007년, 2010년 들어 주어진:
39, doesn& 빗나갔다. 그 옆에 내가 메모장에 저장 버튼을 작성했습니까 고용하곤 다른 이름으로 저장 및 인코딩입니다. 선택할 수 있습니다. 내가 선택한 UTF-8 로 제안됩니다 전송되지만 운빨이야. 세미콜론, 어쨌든요 가져다줄래요 협력했습니다 쉼표 를 변경 난 그냥 뭐 할일없나 didn& # 39, t change, 정보기술 (it) 하였다. 그래서 예를 볼 때 이 같은 변경일 고용하곤 UTF-8 인코딩을 메모장에 저장.
그러나 there& # 39 의 catch! Csv 파일 파일을 열 수 있는 유일한 방법은 두 번 클릭하면 작동하잖아 는 한다. 만약 내가 불러오시겠습니까 텍스트 데이터가 고용하곤 이 CSV 의 말을 인용, 그래도 그런 줄 바꿈.
하지만 다른 , # 39 의 there& catch! 작업 현장 seperator (쉼표 중 원본 acrobatconnectcentral. 세미콜론 내 경우) 의 지역 설정에 따라 결정될 것으로 보인다 (설정 아래, 제어판 - > system& # 39 국가 및 언어). 쉼표 (,) 는 노르웨이의, 소수 seperator. 이를 방지하기 위해 문자 및 포지셔닝하십시오 excel 세미콜론 아닌 것 같다. 영국 영어 로케일에 및 해당 컴퓨터에서 다른 컴퓨터로 내가 액세스하도록 설정되었습니다, 첫 번째 예 쉼표로 seperator 작동합니다 (오로지 더블클릭) 와 함께 하나 세미콜론 실제로 실패! 많은 상호 운용성. 이 경우 CSV 온라인 및 사용자 게시할지 Excel, 뭐 형상게시 두 버전 모두 할 수 있는 사람들이 적절한 수의 행뿐만 파일 및 제안하세요 확인할 수 있습니다.
따라서 모든 세부 사항을 I& # 39, ve been afaq afnor 취합하려면 사용할 수 있다.
39, ve (\r\n) 둘 다 indows 선 끝 i& 사용되는 텍스트 필드에 기록으로 seperator 않했느뇨 작동합니다.
따라서 누군가가 바란다.
드디어 문제를 찾았습니다!
ASCII나 UTF-8이 아닌 유니코드 인코딩을 사용하여 파일을 작성하고 있었던 것으로 밝혀졌습니다. FileStream에서 인코딩을 변경하면 문제가 해결되는 것 같습니다.
모든 제안에 감사드립니다!
단답형
줄 바꿈 제거하시겠습니까 / linefeed 문자 ('\n' 을 (를) 노트패드++). Excel 케리지리턴 문자 ('\r') 를 계속 알 수 있는 별도의 레코드는유지합니다.
답변이 길어져서
개행 문자를 언급한 바와 같이, 항상 확실하게 처리해야 하지만 Excel doesn& # 39 가 지원됩니까 δ1 CSV 필드용 없다. 비슷한 문제를 안고 있는 문제가 아니라 내가 할 수 있는 t # 39, 타사 CSV 인도하심이라만일 인코딩입니다 didn& 향상시키십시오 인코딩입니다 변경.
어떤 방법이 주효했는가 가져다줄래요 개행 문자 ('\n') 는 모두 제거. 이 경우 해당 레코드는 기록하십시오 필드용 축소 효과가 있습니다 하나의 구분된 결합을 케리지리턴 및 개행 문자 (CR / LF). 엑셀 파일을 가져오고 그러면 의해 새로운 기록이 제대로 알고 케리지리턴.
물론 실제 재장착합니다 클리너 해결책은 먼저 줄 바꿈 ('\r\n') 를 임시 문자 조합을 구분을 문자 대신 줄 바꿈 ('\n') 를 선택 (예: 쉼표 받을시간은 세미콜론 파일) 한 후 다시 교체하십니까 임시 캐릭터와 이벤트수정적절한 줄 바꿈.
필드에 선행 공백이 포함된 경우 Excel은 텍스트 한정자로 큰따옴표를 무시합니다. 해결책은 쉼표(필드 구분 기호)와 큰따옴표 사이의 선행 공백을 없애는 것입니다. 예를 들어
깨진:
이름,제목,설명
"John",
"Mr.",
"내 상세 설명"
";
작업 중:
이름, 직책, 설명
"John", "Mr.", "나의 상세 설명"
j # 39 의 Ashley& +1 대한 언급은 하지 않았다. 내가 이 문제를 분할합니다 실행했음 있다. Excel 필요한 것으로 나타났다.
A 개행 문자 (" \n";) 이 말을 구체화하십시오
A 케리지리턴 및 상호 간에 행일 줄 바꿈.
각 행의 구분하는 데 사용할 수 있는 메모장 ++ 내가 제대로 사용할 줄 바꿈 구체화하십시오. 이 항목은 열어 빈 excel 문서를 작성하여 발견된 multiline csv 메모장에서 ++.
구글 시트말이죠 CSV 파일 및 가져오기할 사용합니다.
그럼 익스포트합니다 Excel 에서 사용할 수 있습니다.
만약 누군가 이 명확한 답을 찾고 있으며, 여기에 걸림돌이 되고 구현하므로 스레드할 댁이라면 (들어 있는 사람에게 크레딧보다 리브레오피스:
노트패드++ 붙여넣습니다 인코딩입니다 > 선택합니다. 다시, 모든 ANSI 에서 인코딩합니다 복제본에 붙여넣습니다 Excel:)
내 경험에 대한 설정을 통해 Excel 2010년 프랑스 레지옹 WinXP
비슷한 문제가 있었습니다. 난 이미 일부 트위터 data-in MySQL. 줄 바꿈 (LF 또는 \n) 내에 있는 데이터를 데이터 했다. 난 이미 내보내기하는 요구 사항을 mysql 데이터를 excel 로. 이 LF 는 내 임포트하지 메싱 백업하도록 csv 파일. 그래서 제가 한 다음 -
참고 있을 뿐 아니라 크레프 교체하십니까 확인란 렉상드드 잊지 않습니다. (\n \r \t., 또는 LF 확인란 [보면 대화상자의 왼쪽 아래)
개요
거의 10 년 만에 hasn& # 39 의 원본 게시물, Excel, t 향산된 임포트하지 CSV 파일. 하지만 나는 것이 훨씬 더 나은 것으로 임포트하지 HTML 표. 따라서 한 후 결과 HTML 을 사용할 수 있는 HTML 로 파이썬 변환할지 CSV 임포트하십시오 한다.
이 방법의 장점은 다음과 같습니다. (a), (b), t need 너회가 don& 작동하잖아 안정적으로 보내려면 # 39 제 3 자에게 서비스 데이터 (예를 들어 구글 시트), (c), 추가 " fat" 없습니다. 설치 필요 (리브레오피스, 숫자 등) 와 CR, LF (d) 보다 높은 수준의 대부분의 사용자를 위한 무리한 / 문자 및 BOM 표시자는, (e) 와 바이올린 않아도 로케일에 꾸미기야.
단계를
다음 단계를 실행할 수 있는 같은 배시 쉘로 deltamove 파이썬 3 가 설치되어 있습니다. Csv 직접 읽을 수 있지만, 파이썬 사용할 수 있습니다. 치프카이트 를 사용할 수 있도록 변환 못하며창조된 중간 JSON. 이 복잡한 CSV 의 파이썬 코드를 처리할 수 있게 않아도 됩니다.
첫째, 'json2html.py' 다음 스크립트입니다 절약합니다 있다. Json 은 html 에서 파일을 판독합니다 스크립트입니다 stdin 및 정보기술 (it) 을 table: 덤프합니다. "'파이썬
! / usr / bin / env python3
import sys, json, html
39, & # 39 main& name 경우 =.
header_emitted = False make_th 람다 (λ) = s: ,, " < th> %s< /th> ". % (사마레비스카피 (s) 의 경우 다른 " ";)) make_td 람다 (λ) = s: ,, " < td> %s< /td> ". % (사마레비스카피 (s) 의 경우 다른 " ";)) make_tr 람다 (λ) = l, make_cell: ,, " < tr> %s< /tr> ". % (", ", 스타인 ([make_cell (v) v 의 l]) 보기인쇄 (";;;;;; table> < html> < body> \n< ") 제손드로이드 에서 선 (시s.스트딘): lk, lv = zip (* 선자이트마스 ()) 그렇지 않으면 header_emitted: 보기인쇄 (make_tr (lk, make_th)) header_emitted = True 보기인쇄 (make_tr (lv, make_td)) 보기인쇄 (,,, " < /table\n< /body> < /html> ") "'
그런 다음 치프카이트 설치 및 사용 '우리' 입력 파일을 가상 환경에서 치바제슨 채우기할 스크립트입니다. '추측' -I '인수를 통해 세포 유형을 비활성화하려면 것이 좋습니다. "'쉘로 $ 비르투아르노프 python3 피에노프 - p $. ./pyenv/bin/activate pip 설치처 치프카이트 $ i $ 치바제슨 이노푸트리치프 python3 >, json2html.py 우스푸t.사믈 "'
'지금' 우스푸t.사믈 Excel 에서 가져올 수 있습니다. 줄 바꿈 셀의 보존돼 있을 것이다.
선택적으로 너회의 파이썬 가상 환경 지우는중 할 수 있습니다. "'쉘로 $ 비활성화해야 rm - rf 피에노프 $ "'
뭐 그냥 그렇게 협력했습니다 가져다줄래요, 임포팅 Excel 로 직접 가져오기의 완료되어도 텍스트 형식 (단, csv 형식으로 않고 있다. M/
그냥 (cp) 과 csv 로 저장한 후 이를 통해 새로운 것을 만들 수 있는 오픈 셀을 선브레이크 편집기에는 보여줄 수 있는 줄의 끝 문자 (그것을비유하사 노트패드++). 함께 있는 것을 볼 수 있는 선브레이크 수행여 있는 동안, real" " cell) 는 lf 들어갔다. cr LF 는 코드와 줄의 끝. # Now you know, 224 voil& " 생성하는 방법, correct"; csv 파일의 한다.
난 또 이 문제가 있었다. 즉, csv 파일 (쉼표로 구분된, 큰따옴표 구분된 문장열) 과 LF 에 인용된 써줬지 이러한 다운로드되었습니다 광장 파일. I did 데이터 가져오기 대신 임포트된 tpc. " 충스러웠으니 HTML" 텍스트 파일로 임포트하지,. 이번에는 LF& # 39 의 써줬지 말을 무시했다.
이 작업한 파일을 사용하여 Mac, csv 열어 한다.
Csv 파일 사용하여 쓸 수 있다.
데이터 = & # 39, 셀 (cell line) 의 첫 번째 줄은 두 번째 줄에 a1\r ";;;;, " b1" 셀입니다 " a1" 셀입니다 a1\r 3rd line) 의 2 제 1 의 첫 번째 줄에 줄을 c1\r 셀입니다 c1" 셀입니다 \n" a2" 셀입니다 \n& # 39;;;;
피레스라이트 (데이터)
MacOS 에서 숫자를 사용하여 시도하시겠습니까
나는 애플 Mac OS 액세스하도록 경우 것으로 작업시트의 숫자임 수행합니까 런피클링 잘 해결할 수 없는 복잡한 여러 줄 수 있는 Excel CSV 파일. 그냥 '.csv' 를 열고, 숫자 및 다음 익스포트합니다 한다.
내 경우 CSV 의 열기 ',' 으로, 9월 = " 노트패드++ 및 추가 오픈 첫 번째 줄은 줄바꿈을 ", Excel 에서 utf-8 과 CSV 가 문제 없이 날 수 있습니다.
대신 분리자의 재장착합니다 탭 (\t) 와 쉼표 (,). 그 후 해당 파일을 열고 편집기에는 (메모장 등), 복제본에 좁히어 관심용 Excel 파일의 내용을 붙이십시오.