2014-10-01 2 views
1

나는받는 Excel (.xls) 파일을 읽을 필요가있다. UTF-8, Cp1252, ISO-8859-1, UTF-16LE와 같은 일반 문자셋을 사용하면 아무 도움도 안됩니다. 문자는 여전히 형식이 잘못되었습니다.텍스트와 같은 Excel (.xls) 파일을 읽는 방법은 무엇입니까?

따라서 검색 결과는 juniversalchardet으로 끝났습니다. 그 문자셋은 MacCyrillic이고 MacCyrillic을 사용하여 파일을 읽었지만 여전히 이상한 결과를 보였습니다.

Excel에서 파일을 열면 모든 문자가 괜찮습니다. 포르투갈어로 채워진 부엉 등이 있기 때문에 괜찮습니다. 하지만 부엉 메모장이나 물마루 자바 파일을 여는 모든 엉망입니다. 하지만 내 엑셀에서 파일 열기 후이 캐릭터 세트 내가 올바른 캐릭터 세트를 발견 할 수있는 방법

public static void lerCharset(String fileName) throws IOException { 
    byte[] buf = new byte[50000000]; 
    FileInputStream fis = new FileInputStream(fileName); 

    // (1) 
    UniversalDetector detector = new UniversalDetector(null); 

    // (2) 
    int nread; 
    while ((nread = fis.read(buf)) > 0 && !detector.isDone()) { 
     detector.handleData(buf, 0, nread); 
    } 
    // (3) 
    detector.dataEnd(); 

    // (4) 
    String encoding = detector.getDetectedCharset(); 
    if (encoding != null) { 
     System.out.println("Detected encoding = " + encoding); 
    } else { 
     System.out.println("No encoding detected."); 
    } 

    // (5) 
    detector.reset(); 
    fis.close(); 
} 

을 찾을 수

내 방법 읽을하게 된 .txt처럼 다시 저장하면? 다른 시도해야합니까? 내 자바를 다시 저장하고 엑셀을 읽기 시작한 것처럼?

답변

3

질문을 이해하는 경우 텍스트 파일과 같은 Excel 파일을 읽으려고합니다.

도전을 통해 하나 (.XLS 파일

당신은 .CSV로 파일을 저장해야 할 것 중 하나 ... 등 서식 텍스트를 포함 실제로 바이너리 파일, 시트 정보, 매크로 정보 점이다 Excel을 프로그램을 실행하기 전에 또는 프로그램에서 직접 실행) .xlsx (해당 시점에서 파일을 XML로 읽을 수있는 수많은 라이브러리가 있음) 또는 라이브러리 (예 : apache POIor anything similar)를 사용하거나 데이터를 쿼리합니다 ADO를 사용합니다.

행운을 빌어 당신이 당신의 질문을 통해 암시하는 바입니다.

+0

내가 아파치 POI는 .CSV로이 파일을 저장 할 수 있습니까? 이 Excel은 형식이 지정되지 않았으며 2 개의 열을 가지고 있으며 정의가 라인에 작성되어 정말 혼란 스럽지만 그게 내가 처리해야 할 대상입니다 – prabello

+0

"정의가 행에 있음"은 무엇을 의미합니까? –

+0

파일에는 열 A와 B가 있고 열 A 안에는 열이어야하고 B에 값이있는 "정의"가 있습니다. 하지만 COLUM A ROW 14처럼 -> 설명 COLUM B 행 14 -> XXXX COLUM B 행 15 -> XXXX 계속> – prabello

-1

코드 :

WorkbookSettings workbookSettings = new WorkbookSettings(); 
WorkbookSettings.setEncoding("Cp1252"); 
+0

내 파일의 문자 세트가 변경 될까요? 죄송합니다. 이해하기가 다소 모호합니다. – prabello

+0

예. Excel 파일을 Java 가져 오기/내보내기와 호환되는 것으로 알려진 문자 집합으로 변경합니다. –

관련 문제