0

私は以下のようにExcelドキュメントを読んでいます:

package com.sample.file;

//necessary imports goes here

public class ExcelReader { 
   public static void main(String[] args) throws Exception{ 

  String fname = "C:\\myExcel.xls"; // or  "C:\\myExcel.xlsx"  
  InputStream inp = new FileInputStream(fname); 
  Workbook wb = WorkbookFactory.create(inp); 
  Sheet sheet = null; 

  sheet = wb.getSheetAt(0); 

  Iterator rows = sheet.rowIterator(); 

  while (rows.hasNext()) 
    { 
            Row row = (Row) rows.next(); 

            // how to write to a semicolon delimited dat file here
    }

  inp.close(); 
} 
}

上で見たように、私は行を読むことができます。ただし、ここで、その行をセミコロンで区切られたdatファイルに書き込みたいと思います。

また、列が空の場合、ファイルでは空の値として表示される必要があります。つまり、連続するセミコロンの間にデータはありません。

4

2 に答える 2

1
final StringBuilder sb = new StringBuilder("");
while (rows.hasNext()) {
    Row row = (Row) rows.next(); 
    // how to write to a semicolon delimited dat file here
    Iterator<Cell> cells = row.cellIterator();

     while (cells.hasNext()) {
        Cell cell = cells.next();
        sb.append(cell.toString()).append(";");
    }
    sb.append("\n");
}   

File file = new File("someFile.dat");

if (!file.exists()) {
    file.createNewFile();
}

FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(sb.toString());
bw.close();
于 2012-10-17T05:21:49.260 に答える
0

「row.toString」が何らかの文字列を返すと仮定して、「row.toString」を stringbuilder にセミコロンで区切って追加します

その後、 while ループの後

            File file = new File("filename.txt");

            // if file doesnt exists, then create it
            if (!file.exists()) {
                file.createNewFile();
            }

            FileWriter fw = new FileWriter(file.getAbsoluteFile());
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write(content.toString); //content is your stringbuilder
            bw.close();
于 2012-10-17T05:06:35.393 に答える