2013-07-24 5 views
4

자바를 사용하여 CSV 파일을 생성 할 예정입니다. 다음은 코드의 일부입니다.자바를 사용하여 CSV 파일 만들기

try{ 

    FileWriter writer = new FileWriter(sFileName); 

    writer.append("Title"); 
    for(StoredArticle sa3:historyFile.keySet()){ 
     for(String k3:sa3.getTimeAndPopularity().keySet()){ 
      writer.append(','); 
      writer.append(k3); 
     } 
    } 
    writer.append('\n'); 

문제는 CSV 파일을 성공적으로 작성한 것입니다. for 루프에서 k3은 시간 형식으로 표시됩니다. 2013/07/22 15:40:23. 초는 "23"을 표시 할 수 없습니다. 다른 사람들은 잘하고 있습니다. 무슨 문제가 도와주세요.

내 전체 클래스

package uk.ac.ncl.fanyaoxia.createCSV; 

import java.io.FileWriter; 
import java.io.IOException; 
import java.util.HashMap; 
import java.util.Map; 

import uk.ac.ncl.fanyaoxia.monitor.MonitorRecentUpdates; 
import uk.ac.ncl.fanyaoxia.monitor.StoredArticle; 
import uk.ac.ncl.fanyaoxia.webpagefetch.ReadXml; 

public class CreateCSVFile { 
    private static Map < StoredArticle, ReadXml > historyFile; 

    public CreateCSVFile() { 
     historyFile = new HashMap < StoredArticle, ReadXml >(); 
    } 
    public void createFile() { 
     generateCsvFile("HistoryTable.csv"); 
    } 

    private static void generateCsvFile(String sFileName) { 
     MonitorRecentUpdates csvFile = new MonitorRecentUpdates(); 
     historyFile = csvFile.getMap(); 
     try { 

      FileWriter writer = new FileWriter(sFileName); 

      writer.append("Title"); 
      for (StoredArticle sa3: historyFile.keySet()) { 
       for (String k3: sa3.getTimeAndPopularity().keySet()) { 
        writer.append(','); 
        writer.append(k3); 
       } 
      } 
      writer.append('\n'); 

      for (StoredArticle sa3: historyFile.keySet()) { 
       writer.append(sa3.getStoredTitle()); 
       for (String k3: sa3.getTimeAndPopularity().keySet()) { 
        writer.append(','); 
        writer.append(sa3.getTimeAndPopularity().get(k3).toString()); 
       } 
       writer.append('\n'); 
      } 
      writer.flush(); 
      writer.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+5

이 왜 중 하나 [사용 가능한 CSV 라이브러리 (http://stackoverflow.com/questions/101100/csv-를 사용 api-for-java)? – assylias

+1

먼저 컬렉션의 내용을 확인 (또는 적어도 제공)해야합니다. 콘솔에 시간을 인쇄하면 제대로 표시됩니까? – Martin

+2

@assylias 왜냐하면 csv는 매우 간단해서 라이센스 조건을 확인해야하는 외부 라이브러리에 의존 할 필요가 없기 때문입니다. ","및 새 줄 바꿈은 CSV – AlexWien

답변

3

코드에 의해 예상대로 초 출력되는의 코드입니다. 텍스트 편집기에서 볼 수 있습니다.

그들은 스프레드 시트 응용 프로그램 MS Excel에서 볼 수 없었습니다. 가능한 한 원인은 열 너비가 너무 작습니다.

[이 대답은 위의 영업 이익과 자신 사이의 대화의 결과를 요약 한 것입니다.]

관련 문제