0

私のファイルライターには、これらのコードがあります.j == 4とj == 8は、数字を含む列に対して別のコードを実行することです

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 | ....... 

番号のある列の横の列をスキップします...

コード内の 2 番目の「\」を削除すると、残りの列が番号付きの列に連結されます。

どうすればこれを修正できますか?前もって感謝します

4

3 に答える 3

2

あなたはおそらく次のことを意味していました:

excelWriter.write("\"" + model.getValueAt(i, j) + "\"\t");
于 2012-11-30T09:22:15.320 に答える
2

私が推測する前に、2番目\を書かなければなりません\t

待ってください... テキスト列と数値列を含む Excel シートを作成しました。次に、そのシートをタブ区切りのファイルにエクスポートしました。そのファイルをテキスト エディターで開くと、番号はどの種類でもエスケープされません。だから私はあなたがこれを必要とは思わないif.

于 2012-11-30T09:17:27.963 に答える
2

たとえば、ファイルには .xsl または .xlsx を使用できます

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();
    }
}
于 2012-11-30T09:25:12.450 に答える