1


私のプロジェクトで作業するには、Apache から POI Api について学ぶ必要がありました。そこで、スプレッドシートを作成し、そのセルに値を入力する小さなプログラムを作成することにしました。

問題は、それが意図したとおりに動作しないことであり、ロジックが正しいと確信しています。これは、データがファイルに書き込まれる方法と関係があるとは思えませんが、問題があるため修正できません。 I/O を扱った経験が非常に乏しい。

これは私のコードです:

package excel;
import java.io.FileOutputStream;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;


public class Excel {


    public static void main(String[] args) {


        Workbook workbook = new HSSFWorkbook();
         Sheet sheetTest = workbook.createSheet("TestPOI");

         Cell[] cell = new Cell[100];
         int k = 0, i=0, j=0;

         for( i=0; i<10; i++){
             for (j = 0; j < 10; j++) {
                 System.out.println(k);
                 cell[k] = sheetTest.createRow(i).createCell(j);
                 cell[k].setCellValue(k);
                 k++;
             }
         }


    try{
    FileOutputStream output = new FileOutputStream("MyWorkbook.xls");
    workbook.write(output);
    output.close();
    } //end try
    catch(Exception e){
    e.printStackTrace();
    } //end catch

    } // end of the main method
}

前もって感謝します

4

3 に答える 3

0

問題は、コード内の次のステートメントにあるようです。

         cell[k] = sheetTest.createRow(i).createCell(i);

i 値は 0 ~ 10 の間で変化し続けます。100行を作成するには、次を使用する必要があると思います。

             cell[k] = sheetTest.createRow(k).createCell(i);
于 2013-05-12T14:39:20.927 に答える