我正在尝试制作一个程序,我将从excel文件中读取数据并将它们存储在表格中。我有多个文件,其中大多数文件的代码都可以正常工作。但是当我尝试包含日期列的文件时,我遇到了一些问题。
首先,为了在我的控制台中显示数据,我为不同类型的数据编写了以下代码:
if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
if (DateUtil.isCellDateFormatted(cell)) {
SimpleDateFormat dateFormat = new SimpleDateFormat(
"dd/MM/yyyy");
System.out.println(cell.getDateCellValue());
} else {
Double value = cell.getNumericCellValue();
Long longValue = value.longValue();
System.out.print(cell.getNumericCellValue());
}
} else if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
System.out.print(cell.getRichStringCellValue());
} else if (cell.getCellType() == Cell.CELL_TYPE_BOOLEAN) {
System.out.print(cell.getBooleanCellValue());
} else if (cell.getCellType() == Cell.CELL_TYPE_BLANK) {
System.out.print("null");
}
此外,当我解析数据时,我将以下代码用于不同类型的数据:
if (cell != null) {
if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
if (DateUtil.isCellDateFormatted(cell)) {
tableFields.put(String.valueOf(cell
.getDateCellValue()), cell.getCellType());
} else {
tableFields
.put(String.valueOf(cell
.getNumericCellValue()), cell
.getCellType());
}
} else if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
tableFields.put(cell.getStringCellValue(), cell
.getCellType());
} else if (cell.getCellType() == Cell.CELL_TYPE_BOOLEAN) {
tableFields.put(String.valueOf(cell
.getBooleanCellValue()), cell.getCellType());
} else if (cell.getCellType() == Cell.CELL_TYPE_BLANK) {
tableFields.put(cell.getStringCellValue(), cell
.getCellType());
}
当我创建表时:
switch (fieldType) {
case Cell.CELL_TYPE_NUMERIC:
str = fieldName + " dateFormat";
str = fieldName + " INTEGER";
break;
case Cell.CELL_TYPE_STRING:
str = fieldName + " VARCHAR(255)";
break;
case Cell.CELL_TYPE_BOOLEAN:
str = fieldName + " INTEGER";
break;
case Cell.CELL_TYPE_BLANK:
str = "null";
break;
default:
break;
}
最后,当我使用以下代码填充表格时:
switch (fieldType) {
case Cell.CELL_TYPE_NUMERIC:
str = fieldValue;
break;
case Cell.CELL_TYPE_STRING:
str = "\'" + fieldValue + "\'";
break;
case Cell.CELL_TYPE_BOOLEAN:
str = fieldValue;
break;
case Cell.CELL_TYPE_BLANK:
str = "null";
break;
default:
str = "";
break;
}
但是当我运行程序时,我得到了这个异常:
SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Apr 21 00:00:00 EEST 1987)' at line 1
SQLState: 42000
VendorError: 1064
谁能帮我为什么我得到它?日期格式:26/4/1980