我正在尝试将数据从Excel导入到MySQL。
java.util.ArrayList;
import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import moduleobject.Summary;
public class SummaryReader implements SheetReader<ArrayList<Summary>> {
public ArrayList<Summary> read(Sheet sheet) {
Iterator<Row> rowiterator = sheet.iterator();
rowiterator.next();
ArrayList<Summary> list = new ArrayList<>();
Summary obj = new Summary();
while (rowiterator.hasNext()) {
Row nextRow = rowiterator.next();
Iterator<Cell> celliterator = nextRow.cellIterator();
while (celliterator.hasNext()) {
obj.setProcessor(celliterator.next().getStringCellValue());
obj.setProcessName(celliterator.next().getStringCellValue());
obj.setLevel(celliterator.next().getNumericCellValue());
obj.setPA11(celliterator.next().getNumericCellValue());
obj.setPA21(celliterator.next().getNumericCellValue());
obj.setPA22(celliterator.next().getNumericCellValue());
// obj.setPA31(celliterator.next().getNumericCellValue());
// obj.setPA32(celliterator.next().getNumericCellValue());
}
}
list.add(obj);
return list;
}
}
我得到的错误是
Exception in thread "main" java.lang.IllegalStateException: Cannot get a numeric value from a text cell
at org.apache.poi.xssf.usermodel.XSSFCell.typeMismatch(XSSFCell.java:994)
at org.apache.poi.xssf.usermodel.XSSFCell.getNumericCellValue(XSSFCell.java:305)
at reader.SummaryReader.read(SummaryReader.java:32)
at reader.SummaryReader.read(SummaryReader.java:1)
at controller.JobController.startJob(JobController.java:69) at job.JobLauncher.main(JobLauncher.java:21)
为什么会出现此异常?
最佳答案
请用:
DataFormatter formatter = new DataFormatter();
Cell cell = sheet.getRow(i).getCell(0);
String var_name = formatter.formatCellValue(cell);