답변:
소스 데이터를 제어하는 사용자의 경우 CSV 열이 다음 형식이 아닌 경우 Excel은 CSV 필드의 형식을 자동 감지합니다.
"=""Data Here"""
예를 들어 ...
20, 5.5%, "0404 123 351", "3-6", "=""123"""
[number] [percent] [number] [date] [string] <-- how Excel interprets
Google 스프레드 시트에서도 작동하지만 다른 스프레드 시트 앱이이 표기법을 지원하는지 확실하지 않습니다.
데이터에 따옴표 자체가 포함되어 있다고 의심되면 다음 과 같이 따옴표를 이중 이스케이프 해야합니다 ...
"=""She said """"Hello"""" to him"""
(편집 : DMA57361 덕분에 수정 사항으로 업데이트되었습니다!)
"=""123"""
그렇지 않으면 잘못 형성 되어야합니다 . 를 포함하는 필드 "
는 구분되어야 "
하고 필드 의 s는 다른 "
s로 이스케이프 되어야합니다 .
="123"
은 필드 "
를 올바르게 구분 하지 않고 필드 구분 문자 를 포함하므로 유효한 CSV 필드가 아닙니다 . Excel이 수식으로 읽는다는 사실은 전적으로 Excel에 달려 있으며 CSV 파일과 관련이 없습니다.
많은 사람들과 마찬가지로 Microsoft가 다양한 제안 된 솔루션을 만들고 시도한 것과 동일한 결정으로 어려움을 겪고 있습니다.
Excel 2007의 경우 다음이 진행됩니다.
하나:
큰 따옴표를 묶기 전에 탭을 모든 값 앞에두면 DOES는 날짜로 변환되지 않으며 DOES는 선행 또는 후행 0이 트리밍되는 것을 방지하고 시트는 각 셀의 왼쪽 상단 모서리에 불쾌한 경고 마커를 표시하지 않습니다.
예 :
"<tab character><some value>","<tab character><some other value>"
탭 문자는 큰 따옴표 안에 있어야합니다. 편집 : 큰 따옴표는 필요하지 않습니다.
csv 파일을 두 번 클릭하면 Excel에서 스프레드 시트로 파일을 열어 텍스트 데이터처럼 위와 같이 처리 된 모든 값을 표시 할 수 있습니다. '.' 을 사용하도록 Excel을 설정하십시오 . csv 파일의 모든 줄이나 ','가 아닌 소수점 으로 각 행의 첫 번째 셀에 하나의 텍스트로 표시됩니다. Microsoft는 CSV가 "소수가 아닌"구분 된 값을 의미한다고 생각합니다.
Excel의 가져 오기 기능을 사용하면 각 열을 해석해야하는 형식 (자동, 텍스트 또는 날짜)을 지정할 수 있으며 데이터 파일을 수정할 필요가 없습니다.
Excel 2007/2010에서 Data
→ Get External Data
→ 로 찾을 수 있습니다 From Text
.
또는 Excel 2003의 경우 Data
→ Import External Data
→Import Data
다음은 주어진 예제 데이터에 대한 Excel 2003 텍스트 가져 오기 마법사의 이미지로, 후자의 두 열을 텍스트로 가져 오는 것을 보여줍니다.
Simon의 예는 저에게 효과적이지 않았으며 언어 차이라고 생각합니다. C #에서 내 작업 형식 문자열은 다음과 같습니다.
var linebreak = (i++ == list.Count) ? "" : "\r\n";
csv += String.Format("=\"{0}\",{1},{2},{3},=\"{4}\"{5}",
item.Value, item.Status, item.NewStatus, item.Carrier, c.Status, linebreak);
출력 파일은 다음과 같습니다.
="abababababab",INVALID,INVALID,USPS,="",
="9500100030492359000149",UNKNOWNSTATUS,DELIVERED,USPS,="3"
="9500100030492359000149",UNKNOWNSTATUS,DELIVERED,USPS,="3"
="9500100030492359000149",UNKNOWNSTATUS,DELIVERED,USPS,="3"
="9500100030492359000149",UNKNOWNSTATUS,DELIVERED,USPS,="3"
="9400110200793482982812",UNKNOWNSTATUS,DELIVERED,USPS,="3"
="9400110200793482982812",UNKNOWNSTATUS,DELIVERED,USPS,="3"
="9400110200793000216184",UNKNOWNSTATUS,INVALID,USPS,=""
알 수 있듯이 출력 파일의 형식 은 Visual Basic 규칙 이 ="VALUE",
아닐 "=""VALUE""",
수도 있습니다.
Excel 2010을 사용하고 있습니다. 또한 Google 스프레드 시트는 이러한 방식으로 포맷 된 파일을 열거 나 변환하지 않습니다. 등호를 제거하면 작동합니다. "VALUE",
Excel은 여전히 파일을 열지 만 열을 문자열로 만들고 싶다는 사실은 무시합니다.
Excel에서 날짜를 텍스트로 해석하도록하는 간단한 방법은 다음과 같이 전체 따옴표를 사용하는 대신 날짜 앞에 작은 따옴표를 넣는 것입니다.
'10 / 11 / 2002
CSV를 열지 않고 가져올 수있는 경우 각 열의 형식을 Excel에 알릴 수 있습니다. 내가 물었던이 질문을 보라 .