2011-03-04 13 views
3

최근 CSV로 데이터베이스에 항목을 추가하는 응용 프로그램을 만들었습니다. 항목을 추가 한 후에 나는 많은 가치에 더 이상 필요하지 않은 여분의 따옴표 ("")가 있음을 깨달았습니다.Excel에서 CSV 내보내기에 따옴표를 추가했습니다.

Excel에서 CSV로 내보낼 때 Excel에서 추가 따옴표를 . 이미의 인용문이 나의 모든 값이 나는 아래의 차이를 보여 주었다 :

원래 항목 : 드릴 전기 가역 1/2 "6.3A

수출 품목 : "드릴 전기 가역 1/2 ""6.3 "

참고 : CSV 내보내기에 3 개의 추가 따옴표 (")가 추가됩니다. 끝 2 개, 원래 의도 한 인용구 뒤 1 개.

변경할 수있는 설정이 있습니까, 아니면 Excel 파일/열에 설정할 수있는 서식 속성이 있습니까? 아니면 데이터베이스에 추가하기 전에 백엔드 코드에서이 견적을 제거해야합니까?

+0

주변 인용문은 CSV의 표준 사항이므로 걱정하지 않아도됩니다. 수입업자가 따옴표를 포함하고 있는지 확인하십시오. 안쪽 따옴표는 큰 따옴표를 이스케이프 처리하는 Excel의 방법입니다. 약간 성가시다, 나는 너에게 줄 것이다. 그러나 그것은 표준의 일부이다. – chmullig

+0

*'문제는 엑셀에서 CSV로 내보낼 때 엑셀이 이미 따옴표가있는 모든 값에 따옴표를 추가하는 것입니다. * - 가져 오지 않고 어떻게 ** 이것이 문제**? – Wolf

답변

7

이 완전히 정상이다. 외부 인용 부호는 문자열이기 때문에 추가됩니다. 그것을 감추기 위해 내적 인용이 배가됩니다. 예를 들어 SQL 쿼리에서 볼 수있는 것과 같은 종류의 것입니다. TextFieldParser 클래스를 사용하여 자동으로이 구문 분석을 시도하고 진정한 프레임 워크 코드 관리를 해보십시오.

3

그건 표준입니다.

CSV 파일의 값은 따옴표로 묶어야합니다 (그렇지 않으면 필드 내의 쉼표 및 줄 바꿈이 잘못 해석 될 수 있음).

필드에서 인용 부호를 이스케이프하는 방법은보고있는 것처럼 두 배로하는 것입니다.

CSV는 필드/쉼표 문자와 기록/줄 바꿈에 의해 종료 행으로 구분 된 열이 구분 된 데이터 형식입니다

나는 당신이 basic rules of CSV에 대해 읽어 좋습니다. 특수 문자 (쉼표, 줄 바꿈 또는 큰 따옴표)가 포함 된 필드는 큰 따옴표로 묶어야합니다. 한 줄에 빈 문자열 인 단일 항목이 들어 있으면 큰 따옴표로 묶을 수 있습니다. 필드 값에 큰 따옴표 문자가 포함되어 있으면 필드 옆에 다른 큰 따옴표 문자를 두어 이스케이프 처리됩니다. CSV 파일 형식에는 특정 문자 인코딩, 바이트 순서 또는 줄 종결 자 형식이 필요하지 않습니다.

(강조 광산)

+0

흠. 이는 이미 견적이 들어있는 필드에서만 발생합니다. 그래서 만약 내가 "뒤에"내 코드에서 문제를 해결해야합니까? "또는" "" "함께 바꾸어야 할 것입니다? 편집 : 잠깐, 나는 Excel 파일에서 바꾸어야 할 것입니다. – Lando

+4

@Lando - CSV 파싱 라이브러리를 사용하여 쉽게 생활하십시오. – Oded

-1

또 다른 방법은 엑셀 데이터에 유니 코드 문자 "DOUBLE PRIME"

http://www.fileformat.info/info/unicode/char/2033/index.htm 

을 사용하는 것입니다. Excel에서 UTF-8 또는 UTF-16 .csv로 내보내려면 해당 CharacterSet 속성과 함께 schema.ini를 제공해야합니다. 분명히 데이터베이스에 .csv 파일을 가져 오는 데 사용하는 도구는 유니 코드를 인식해야합니다.

DBMS에 따라보다 직접적인 데이터 전송 방식 (SELECT/INSERT ... INTO ... IN)을 사용할 수 있으므로 .csv가 완전히 제거됩니다.

+0

아래 표의 이유를 물어볼 수 있습니까? –

0

TAB 구분 파일로 Excel에서 내보낼 수 있습니다. 파싱하기 쉽습니다.

0

모든 문자 바꾸기 오른쪽 이중 따옴표를 문자로 표시 왼쪽 따옴표. 유사하게 보입니다. Excel이 혼란스럽고 텍스트가 변경되지 않도록하십시오.

0

이 솔루션은 최종 출력물이 HTML 인 경우에만 도움이됩니다. 이 때문에 분명히 당신이에서 작업하는 C# 또는 어느 언어로이를 다시 실행해야합니다 자바 스크립트 솔루션입니다 : 당신은 CSV를 구문 분석하기 전에

base = base.replace(/""/gi, '"'); 
base = base.replace(/'/gi, '''); 

이 적용.

관련 문제