비교적 큰 (80K 행) Excel 파일을 특정 행으로 검색하는 C# (VS 2008) 응용 프로그램을 작성해야합니다. 일반적으로 ADO.net을 사용하지만 Windows Mobile은이 기능을 지원하지 않습니다. Excel로 내보내기 시도하고 linq 함께 구문,하지만 여전히 느립니다. 누구든지 어떤 제안이 있습니까?Windows Mobile 디바이스 용 C#에서 Excel 파일을 빨리 검색하는 방법
0
A
답변
2
Excel 표를 CSV (쉼표로 구분 된 값) 형식으로 내보내는 것이 좋습니다.
가능하다면, 당신은 전체 파일을로드하고 기본적으로 Divide and Conquer
사용하여 검색을 수행 할 수 있습니다, 그 뒤에 아이디어는 예를 들어, 찾고있는 값을 포함 알파벳 순으로 정렬 컬럼입니다. 우리는 이름 란에서 "피터"라는 이름을 찾고 있습니다. 그보다 열의 중앙에있는 값 (예 : "malcom")을 사용하고 찾고있는 값이 중간 값보다 앞뒤에 있는지 확인하십시오. 이 경우 정렬로 인해 "malcom"이후에 있어야하므로 표를 반으로 분할하고 표의 절반에 따라 검색을 계속하십시오. 테이블에 남아있는 레코드가 가득 찰 때까지 재귀 적으로 반복 할 수 있습니다 (예를 들어 10이라고 말하면 됨). 값을 찾기 위해 정기적으로 검색을 수행하십시오.
나는 마지막 논문에서 그러한 일을 한 번했습니다. 내 구현은 C++로 작성되었으며 해시 테이블을 사용했습니다. 그것은 Excel보다 훨씬 빠릅니다.
나는이 알고리즘을 사용하여 5 초 이내에 수백만 행의 두 테이블을 교차 또는 제외로 만들었습니다. 따라서 올바르게 구현되면 빠른 속도로 빨라질 수 있습니다. – SlapY