данные массива цикла с использованием apache poi - PullRequest
0 голосов
/ 09 октября 2018

Я новичок в Java и Apache POI.

Итак, сейчас я хочу достичь того, что я хочу циклически выводить строки дней за строкой (по вертикали) под столбцом Дни:

Класс дат дней государственных праздников

public static void main(String[] args) {

    XSSFWorkbook workbook = new XSSFWorkbook();

    XSSFSheet sheet = workbook.createSheet();

    String[] days = { "SU", "MO", "TU", "WED", "TH", "FR", "SA" };

    Row row = sheet.createRow(0);
    row.createCell(0).setCellValue("Public Holidays");
    row.createCell(1).setCellValue("Days");
    row.createCell(2).setCellValue("Date");
    row.createCell(3).setCellValue("Class");

    int numRows = sheet.getFirstRowNum();
    int numCols = sheet.getRow(0).getLastCellNum();

    for (int i = 1; i < 7; i++) {

        Row row2 = sheet.createRow(i);
        Cell cell = row.createCell(1);
        cell.setCellValue(days);

    }

    try {

        FileOutputStream out = new FileOutputStream(new File("C:xx"));

        workbook.write(out);

        out.close();

        System.out.print("Sucess, please check the file");

    } catch (Exception e) {
        e.printStackTrace();
    }

}

Я получаю сообщение об ошибке:

Метод setCellValue (double) в типе Cell не применим для аргументов (String [])

Пожалуйста, помогите мне решить эту проблему с массивом.

Ответы [ 2 ]

0 голосов
/ 09 октября 2018
public static void main(String[] args) {

    XSSFWorkbook workbook = new XSSFWorkbook();

    XSSFSheet sheet = workbook.createSheet();

    String[] days = { "SU","MO", "TU", "WED", "TH", "FR", "SA"};

    Row row = sheet.createRow(0);
    row.createCell(0).setCellValue("Public Holidays");
    row.createCell(1).setCellValue("Days");
    row.createCell(2).setCellValue("Date");
    row.createCell(3).setCellValue("Class");

    int numRows = sheet.getFirstRowNum() + 1;

    for (int i = 1; i <= 7; i++) {

        Row row2 = sheet.createRow(i);

        Cell cell = row2.createCell(1);

        cell.setCellValue(days[i - 1]);

    }

    try {

        FileOutputStream out = new FileOutputStream(new File("C:xx"));

        workbook.write(out);

        out.close();

        System.out.print("Sucess, please check the file");

    } catch (Exception e) {
        e.printStackTrace();
    }

}

вот рабочий файл.спасибо за помощь мне: D

0 голосов
/ 09 октября 2018
The method setCellValue(double) in the type Cell is not applicable for the arguments (String[])

Вы попытались передать массив String, объявленный как

String[] days = { "SU", "MO",...};

, в метод setCellValue().Не существует перегруженного варианта setCellValue(), который принимает аргумент String[].Я думаю, что вы имели в виду

cell.setCellValue(days[i-1]);

Сообщение об ошибке немного сбивает с толку, потому что при попытке решить метод, который он выбрал один (тот, который принимает double), чтобы указать в сообщении.

...