2012-11-30 1 views
0

, 나는이 코드를 가지고는 J의 == 4, J == 8 숫자가 포함 된 열의에 다른 코드를 실행하는 것입니다 다음 열의 값을 탈출내보내기 JTable는, Excel로 - 내 파일 라이터에서

for(int i=0; i<model.getRowCount();i++){ 
     for(int j=0; j<model.getColumnCount();j++){ 
      if(j==4 || j==8){ 
       excelWriter.write("\""+model.getValueAt(i, j) + "\t"+"\""); 
      } 
      else{ 
       excelWriter.write(model.getValueAt(i, j) + "\t"); 
      } 
     } 
     excelWriter.write("\n"); 
    } 

번호와 그 열이 인쇄 된 후이 문제는, 다음의 열 ... 예

This is my JTable 

| texta | textb | textc | textd | number | texte | textf | ....... 

in the excel file, it will be printed as.... 

| texta | textb | textc | textd | number | textf | ....... 

이 번호 열의 옆에 기둥을 생략위한 .. 프린트되지 않을 것이다

wh 코드에서 두 번째 "\"를 제거하고, 나머지 열은 숫자가있는 열에 연결됩니다.

어떻게하면 해결할 수 있습니까? 미리 감사드립니다.

+0

을 .xlsx '에 할 수 있습니까? 'excelWriter'의 유형은 무엇입니까? – Kai

+0

FileWriter를 사용합니다. 프레임 워크가 무엇을 의미합니까? – Katherine

+0

죄송합니다 ... 제가 잘못 생각합니다. 'xls' 파일을 내보내는 것이 아닙니다. 대신 Excel에서 여는 텍스트 파일로 내보내는 중입니다. 'xls'에 대한 직접 수출이 옵션입니까? 그렇다면 슬래시와 탭을 교환 할 때 [Apache POI] (http://poi.apache.org/) – Kai

답변

2

두 번째 \\t 전에 작성해야합니다.

대기 ... 텍스트 열과 숫자 열이있는 Excel 시트를 만들었습니다. 그런 다음 해당 시트를 탭으로 구분 된 파일로 내 보냈습니다. 텍스트 편집기에서 해당 파일을 열면 숫자가 어떤 종류로도 이스케이프되지 않습니다. 그래서 당신이 이것을 필요로하지 않는다고 생각합니다 if.

+0

을 사용해야합니다 (1995-02-02)이 같은 출력은 Excel #######에서 출력됩니다 ... – Katherine

+1

@ 캐서린 칸 좁히기? 조금 더 넓게 만들어보십시오. 정말 슬래시가 필요없고 if를 제거하고 항상 else 코드를 사용하십시오. – Kai

+0

그래, 내가 필요하지 않은 경우 문제는 좁은 열에 있습니다 : D thanks :) – Katherine

2

는 당신은 아마 의미 :

excelWriter.write("\"" + model.getValueAt(i, j) + "\"\t"); 
2

예를 들어, 파일을 끝내고 .xsl과 함께 또는 당신이 사용하는 어떤 프레임 워크

import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 
import javax.swing.JTable; 
import javax.swing.table.TableModel; 

class ExcelExporterTodayFxDeals { 

    ExcelExporterTodayFxDeals() { 
    } 

    public void exportTable(JTable table, File file) throws IOException { 
     TableModel model = table.getModel(); 
     FileWriter out = new FileWriter(file); 
     String diakritika = "áäÁÄčČďĎéěÉĚíÍľĺĽĹňŇóôöőÓÔÖŐŕřŔŘšŠťŤúüůÚÜŮýÝžŽ"; 
     String diakritikaBez = "aaAAcCdDeeEEiIllLLnNooooOOOOrrRRsStTuuuUUUyYzZ"; 
     String novyPreklad = ""; 
     String groupExport = ""; 
     Integer remDia = 1; 
     for (int i = 0; i < (model.getColumnCount()); i++) {//* disable export from TableHeaders 
      groupExport = String.valueOf(model.getColumnName(i)); 
      novyPreklad = groupExport; 
      if (groupExport != (null)) { 
       remDia = 1; 
       for (remDia = 0; remDia < (diakritika.length());) { 
        novyPreklad = diakritika.substring(1, 2); 
        novyPreklad = (diakritika.substring(remDia, (remDia + 1))).toString(); 
        groupExport = groupExport.replace((diakritika.substring(remDia, (remDia + 1))), 
          diakritikaBez.substring(remDia, (remDia + 1))); 
        remDia++; 
       } 
      } else { 
       groupExport = ""; 
      } 
      out.write(String.valueOf(groupExport) + "\t"); 
     } 
     out.write("\n"); 
     for (int i = 0; i < model.getRowCount(); i++) { 
      for (int j = 0; j < (model.getColumnCount()); j++) {//16 
       if (model.getValueAt(i, j) == null) { 
        out.write("null" + "\t"); 
       } else { 
        groupExport = String.valueOf(model.getValueAt(i, j)); 
        novyPreklad = groupExport; 
        if (groupExport != (null)) { 
         remDia = 1; 
         if (j == 0) {//Replace non_ACSII chars, not required in most cases 
          for (remDia = 0; remDia < (diakritika.length());) { 
           novyPreklad = diakritika.substring(1, 2); 
           novyPreklad = (diakritika.substring(remDia, (remDia + 1))).toString(); 
           groupExport = groupExport.replace((diakritika.substring(remDia, (remDia + 1))), 
             diakritikaBez.substring(remDia, (remDia + 1))); 
           remDia++; 
          } 
          out.write(34); 
          out.write(String.valueOf(groupExport)); 
          out.write(34); 
          out.write("\t"); 
         } else if (j == 5) {//Number Instance 
          if (((model.getValueAt(i, j)) != null) && ((model.getValueAt(i, j)) instanceof Number)) { 
           groupExport = String.format("%.2f", (Number) (model.getValueAt(i, j))); 
          } 
          groupExport = groupExport.replace(".", ","); 
          out.write(34); 
          out.write(String.valueOf(groupExport)); 
          out.write(34); 
          out.write("\t"); 
         } else if (j == 10) {//Date instance 
          groupExport = groupExport.replace("-", "/"); 
          out.write(34); 
          out.write(String.valueOf(groupExport)); 
          out.write(34); 
          out.write("\t"); 
         } 
        } else { 
         groupExport = ""; 
         out.write(34); 
         out.write(String.valueOf(groupExport)); 
         out.write(34); 
         out.write("\t"); 
        } 
       } 
      } 
      out.write("\n"); 
     } 
     out.close(); 
    } 
} 
+0

@ user714965 일반 (JTable 및 MsExcel) 질문에 대한 코드 예제? – mKorbel