Java читать Excel - PullRequest
       1

Java читать Excel

2 голосов
/ 31 марта 2012

Я пытаюсь прочитать этот файл, который я создал как образец, состоящий из 4 столбцов и 1 строки. Код ниже был взят для тестирования API, который я использую, т.е. Apache POI ..

package testjavaexcel;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Date;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
 *

 */
public class TestJavaExcel {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        try {
            FileInputStream fileInputStream = new FileInputStream("poi-test.xls");
            HSSFWorkbook workbook = new HSSFWorkbook(fileInputStream);
            HSSFSheet worksheet = workbook.getSheet("POI Worksheet");
            HSSFRow row1 = worksheet.getRow(0);
            HSSFCell cellA1 = row1.getCell((short) 0);
            String a1Val = cellA1.getStringCellValue();
            HSSFCell cellB1 = row1.getCell((short) 1);
            String b1Val = cellB1.getStringCellValue();
            HSSFCell cellC1 = row1.getCell((short) 2);
            boolean c1Val = cellC1.getBooleanCellValue();
            HSSFCell cellD1 = row1.getCell((short) 3);
            Date d1Val = cellD1.getDateCellValue();

            System.out.println("A1: " + a1Val);
            System.out.println("B1: " + b1Val);
            System.out.println("C1: " + c1Val);
            System.out.println("D1: " + d1Val);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Ошибка из строки " HSSFRow row1 = worksheet.getRow (0); ": - 1006 *

Исключение в потоке "main" java.lang.NullPointerException в testjavaexcel.TestJavaExcel.main (TestJavaExcel.java:28) Результат Java: 1

Не уверен, почему это происходит ... похоже на прямое движение вперед. Заметьте, что все вызываемые методы .getCell () отмечены как устаревшие, но не уверены, как их заменить с помощью API.

Спасибо,

ОБНОВЛЕНИЕ: я выяснил, что новый метод, если getCell использует int вместо старой версии, использует короткий тип. это исправило устаревшее предупреждение. Остальное остается нерешенным. Также я использую poi версия 3.8

1 Ответ

3 голосов
/ 31 марта 2012

Убедитесь, что в вашей книге Excel должен быть лист с названием «Рабочий лист POI» (точное имя).

...