Моя программа зачетных книжек не печатает должным образом, чтобы превзойти документ

1

Моя программа классной книги (где мы ставим оценки и находим среднее значение) не работает должным образом, когда она печатается, чтобы отличить документ. Только ученик 1 и средний результат в заголовке и в среднем для ученика 1 равен 0 без оценки теста или чего-либо еще.

Вот мой код:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.DecimalFormat;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;

public class array {


public static final String Dabook = "wording.xls";



@SuppressWarnings("unused")
public static void main(String[] args) throws IOException {

HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream("wording.xls")); 
HSSFSheet sheet = wb.getSheet("Sheet1");

    int col = 0, num = 1;
    Row startRow = sheet.createRow(0);
    Cell startCell = startRow.createCell(0);
    int cellNumber = 0;
    double total = 0;

    double [ ] [ ] gridGrades = 
        { { 87.5, 61.0, 70.5 },
          { 90.0, 88.5, 87.5 },
          { 78.0, 65.5, 70.5 },
          { 80.0, 79.0, 81.5 },
          { 60.5, 55.5, 50.0 } };
    for (int colTest = 0; colTest < gridGrades[colTest].length + 1; colTest++) {
        for (int testNum = 0; testNum < gridGrades[colTest].length + 1;testNum++) {

            if (testNum == 1) {
                startCell.setCellValue("");
            }
        if (testNum == gridGrades[0].length) {
            startCell = startRow.createCell(testNum + 1);
            startCell.setCellValue("Average");
            startCell = startRow.createCell(testNum + 2);

        }
    }
    }
for (double grade[] : gridGrades) {
    startRow = sheet.createRow(num);
    startCell = startRow.createCell(cellNumber);
    startCell.setCellValue("Student " + num);

    for (int poop = 0; poop < gridGrades[num - 1].length; poop++) {
        if (poop == gridGrades[0].length - 1) {
            double average = total / gridGrades[num - 1].length;

            startCell = startRow.createCell(poop + 2);
            DecimalFormat df = new DecimalFormat("###.##");
            Double averageDouble = Double.parseDouble(df
                    .format(average));
            startCell.setCellValue(averageDouble);
            startCell = startRow.createCell(poop + 3);

            total = 0;
        }
        for (int Scott = 0; startRow.getCell(Scott) != null; Scott++) {
            sheet.autoSizeColumn(Scott);
        }

        FileOutputStream output = new FileOutputStream("wording.xls");
        wb.write(output);
        output.close();
    }

}
{       
        System.out.printf("                 Test %d:      Test %d:   Test %d:    Average:%n", num, num+1, num+2);
    for(double[] grade : gridGrades) { 
        double average = (grade[col] + grade[col+1] + grade[col+2])/3;
    System.out.printf("Student %d         %.2f        %.2f     %.2f       %.2f  %n", num, grade[col], grade[col+1], grade[col+2], average);
    num++;


  }  
} 

}}

Что я делаю не так?

Теги:
excel

1 ответ

0
  • Поместите блок записи из цикла, вам нужно только написать его один раз.
  • поскольку @user902383 сказал, что вам нужен оператор num++ в петле Outter.
  • вы никогда не устанавливали оценки в ячейках, а заголовки "тест N".
  • когда вы устанавливаете оценку в ячейках, как @user902383, добавьте это значение в total значение.

Надеюсь это поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню