FileHelpers를 통해 CSV를 동적으로 읽고 CSV 데이터를 데이터 테이블로 사용하려고합니다. 내 CSV 파일이 동일하지 않습니다. 서로 다른 열 머리글과 다른 양의 열을 갖습니다. ReadStreamAsDT 메서드를 사용하고 있지만 FileHelperEngine을 초기화하는 구조화 된 클래스가 필요합니다. 어떤 아이디어?ReadStreamAsDT - Filehelpers 및 C# - filehelpers를 사용하여 CSV를 동적으로 읽으려면 어떻게해야합니까?
2
A
답변
4
파일에서 DataTable
을 만들려면 FileHelpers.RunTime
과 DelimitedClassBuilder
을 사용해야했습니다. 여기 내 방법이 있습니다. 시간이 더 많이 걸리면 나는 이것을 더 잘 설명 할 것이다.
private static DataTable CreateDataTableFromFile(byte[] importFile) {
var cb = new DelimitedClassBuilder("temp", ",") { IgnoreFirstLines = 0, IgnoreEmptyLines = true, Delimiter = "," };
var ms = new MemoryStream(importFile);
var sr = new StreamReader(ms);
var headerArray = sr.ReadLine().Split(',');
foreach (var header in headerArray) {
cb.AddField(header, typeof(string));
cb.LastField.FieldQuoted = true;
cb.LastField.QuoteChar = '"';
}
var engine = new FileHelperEngine(cb.CreateRecordClass());
return engine.ReadStreamAsDT(sr);
}
물론, 거기에 다른 논리가이 방법을 주위에 일어나고과 함께 검증의 많은,하지만 난 그것으로 다이빙 지금 시간이별로 없습니다. 희망이 도움이!
+0
동일한 접근 방식을 사용하고 있지만 파일 크기가 클 경우 "메모리 부족 예외"가 발생합니다. –
0
http://www.codeproject.com/KB/database/CsvReader.aspx을 사용해 보셨습니까? 이 라이브러리의 파싱을 활용할 수 있습니다. 빠르고 신뢰할 수 있습니다.
관련 문제
- 1. FileHelpers를 사용하여 CSV 파일을 동적으로 작성
- 2. CodeIgniter에서 QueryString을 읽으려면 어떻게해야합니까?
- 3. C#에서 SNMP MIB 파일을 읽으려면 어떻게해야합니까?
- 4. 내 소프트웨어에서이 매개 변수를 읽으려면 어떻게해야합니까? (C#)
- 5. 액세스에서 CSV를 내보내려면 어떻게해야합니까?
- 6. Ruby로 파일을 읽으려면 어떻게해야합니까?
- 7. C#에서 이진 파일을 읽으려면 어떻게해야합니까?
- 8. HttpResponse에서 bytearray를 읽으려면 어떻게해야합니까?
- 9. .inf 파일을 읽으려면 어떻게해야합니까?
- 10. C#을 사용하여 XML 요소의 내용을 읽으려면 어떻게해야합니까?
- 11. C++에서 scanf()를 사용하여 문자열을 읽으려면 어떻게해야합니까?
- 12. 파일에서 입력을 읽으려면 어떻게해야합니까?
- 13. C++에서 시스템 정보를 읽으려면 어떻게해야합니까?
- 14. C++에서 Java 객체를 읽으려면 어떻게해야합니까?
- 15. 키보드 입력을 문자열로 읽으려면 어떻게해야합니까? (C++)
- 16. FileHelpers CSV의 비표준 내장 된 인용문
- 17. JavaScript로 XML을 읽으려면 어떻게해야합니까?
- 18. owfs를 사용하여 iButton 온도 로거를 읽으려면 어떻게해야합니까?
- 19. MVC3을 사용하여 업로드 된 파일을 읽으려면 어떻게해야합니까?
- 20. 파이썬을 사용하여 이미지 파일을 읽으려면 어떻게해야합니까?
- 21. JavaScript를 사용하여 HTML 태그의 속성을 읽으려면 어떻게해야합니까?
- 22. StreamReader를 사용하여 Word 문서를 읽으려면 어떻게해야합니까?
- 23. .Net을 사용하여 직접 디스크를 읽으려면 어떻게해야합니까?
- 24. Javascript를 사용하여 텍스트 파일을 읽으려면 어떻게해야합니까?
- 25. Winform에서 키보드 입력을 읽으려면 어떻게해야합니까?
- 26. 파일에서 특수 문자를 읽으려면 어떻게해야합니까?
- 27. Node.js에서 파일을 읽으려면 어떻게해야합니까?
- 28. .pls 파일을 읽으려면 어떻게해야합니까?
- 29. J2ME에서 문자열을 읽으려면 어떻게해야합니까?
- 30. 모든 피드 항목을 읽으려면 어떻게해야합니까?
"내 CSV 파일이 동일하지 않습니다"라고 말하면 각 CSV 파일에 고유 한 정의가 있거나 CSV 파일의 각 레코드가 잠재적으로 다를 수 있음을 의미합니까? –
혹시 이것을 알아 냈습니까? 나는 구체적인 객체를 제공하지 않고 엔진을 인스턴스화하는 방법을 찾을 수없는 것처럼 보입니다. 난 그냥 CSV 파일을 일반적인 데이터베이스에 끌어 오기를 원한다. –