나는 약간의 악몽을 처리해야하는 CSV 파일이 있습니다. 본질적으로 다음과 같습니다데이터 처리 퍼즐/두통
"Id","Name","Description"
"1","Test1","Test description text"
"2","Test2","<doc><style>body{font-family:"Calibri","sans-serif";}</style><p class="test_class"
name="test_name">Lots of word xdoc content here.</p></doc>"
"guid-xxxx-xxxx-xxxx-xxxx","Test3","Test description text 3"
나는 바퀴를 재발 명하기보다는 CSV를 처리하기 위해 File Helpers 라이브러리를 사용하고 있습니다. 그러나 따옴표가 포함 된 이스케이프 처리되지 않은 Word xdoc xml을 포함하는 설명 필드로 인해 각 레코드의 시작 지점과 끝 지점은 오히려 혼란스러워집니다.
다음은 매핑 클래스의 예입니다. 그들이 ','
를 포맷 시작과 라인의 끝에서 "
모든 '
을 대체 할 '
다음 ((?<=(^|',))'|'(?=($|,')))
패턴을 사용하여 모든 "
를 교체
[DelimitedRecord(","), IgnoreFirst(1), IgnoreEmptyLines()]
public class CSVDoc
{
#region Properties
[FieldQuoted('"', QuoteMode.AlwaysQuoted), FieldTrim(TrimMode.Both)]
public string Id;
[FieldQuoted('"', QuoteMode.AlwaysQuoted), FieldTrim(TrimMode.Both)]
public string Name;
[FieldQuoted('"', QuoteMode.AlwaysQuoted), FieldTrim(TrimMode.Both)]
public string Description;
[FieldQuoted('"', QuoteMode.AlwaysQuoted), FieldTrim(TrimMode.Both)]
}
내가 (작업의 이런 종류의 정규식 내 증오에도 불구하고) 고려 . 그러나 더러운 파일에는 "
으로 끝나는 일부 줄과 서식이 지정된 CSS 스타일 속성이 포함되어 있습니다. ","
이제 어떻게해야 할 지, 어떻게 자동화 할 수 있는지 알아 내려고 노력하고 있습니다.
아이디어가 있으십니까?
를 참조하십시오? – Oded
FileHelpers를 사용하지 마십시오. 직접 간단한 수입 코드를 작성하십시오. 3 열에 불과합니다. 첫 번째 두 개를 정상적으로 분석 한 다음 나머지를 최종 설명 열로 처리합니다. –
그러나 나는 깨끗한 소스를 요구할 계획을 가지고 있지만, 소스 시스템이 가능한지에 대해서는 확신 할 수 없기 때문에 대안을 찾기 위해 노력하고 있습니다. 처음에는 설명 필드를 가져 오는 것만으로도 충분했습니다. 이차적 인 문제는 모든 데이터가 사용자 생성이며 사용자에게 많은 제한이 있다고 생각하지 않는다. (슬프게도) 내 예제는 문제를 설명하기 위해 3 열이며 실제 데이터는 더 많습니다. – Hawxby