如何解决java.lang.NoSuchFieldError:在java中返回\u NULL\u和\u BLANK

如何解决java.lang.NoSuchFieldError:在java中返回\u NULL\u和\u BLANK,java,apache-poi,resultset,Java,Apache Poi,Resultset,这里,ssa_msg_daily在表中包含空值或空值,因此 编译时,我得到的错误如下 线程“main”java.lang.NoSuchFieldError中出现异常:返回\u NULL\u和\u BLANK 在@XSSF工作簿=新建XSSF工作簿()时发生; 我如何处理这种情况 我正在使用ApachePOI将结果集转换为spreedsheet也许您会尝试使用“try”和“catch” 您遇到了类路径问题。您的类路径上有多种版本的ApachePOI项目。这种版本的混合导致其中一个类的较新版本尝试与

这里,ssa_msg_daily在表中包含空值或空值,因此
编译时,我得到的错误如下

线程“main”java.lang.NoSuchFieldError中出现异常:返回\u NULL\u和\u BLANK

在@XSSF工作簿=新建XSSF工作簿()时发生; 我如何处理这种情况 我正在使用ApachePOI将结果集转换为spreedsheet

也许您会尝试使用“try”和“catch”


您遇到了类路径问题。您的类路径上有多种版本的ApachePOI项目。这种版本的混合导致其中一个类的较新版本尝试与其中一个较旧的类对话,但它们不兼容

解决方案是检查您的类路径(因此,如果您使用的是maven、gradle或其他依赖关系系统,即依赖关系链),并对其进行修复。这可能与在构建系统上运行“clean”命令一样简单

注意:您的代码风格非常糟糕-不要在finally块中放入大量代码。此外,99.9%的糊状物都是红鲱鱼。这一行将导致您的问题:

public class SpreadsheetGenerator {
void dailyreport( Connection con) throws SQLException, IOException {
Statement statement = con.createStatement();
ResultSet resultSet = null;
try {
    resultSet = statement.executeQuery("select * from ssa_msg_daily");
} catch (Exception e) {

} 
    //ResultSet resultSet = statement.executeQuery("select * from ssa_msg_daily");
    XSSFWorkbook workbook = new XSSFWorkbook();
    XSSFSheet spreadsheet = workbook.createSheet("employe db");

    XSSFRow row = spreadsheet.createRow(1);
    XSSFCell cell;
    cell = row.createCell(1);
    cell.setCellValue("id");
    cell = row.createCell(2);
    cell.setCellValue("Sender");
    cell = row.createCell(3);
    cell.setCellValue("Service");
    cell = row.createCell(4);
    cell.setCellValue("Message_identifier");
    cell = row.createCell(5);
    cell.setCellValue("Date");
    cell = row.createCell(6);
    cell.setCellValue("Incoming");
    cell = row.createCell(7);
    cell.setCellValue("Outgoing");
    int i = 2;

    if(resultSet!=null){
    while (resultSet.next()) {
        row = spreadsheet.createRow(i);
        cell = row.createCell(1);
        cell.setCellValue(resultSet.getInt("id"));
        cell = row.createCell(2);
        cell.setCellValue(resultSet.getString("Sender"));
        cell = row.createCell(3);
        cell.setCellValue(resultSet.getString("Service"));
        cell = row.createCell(4);
        cell.setCellValue(resultSet.getString("Message_identifier"));
        cell = row.createCell(5);
        cell.setCellValue(resultSet.getDate("Date"));
        cell = row.createCell(6);
        cell.setCellValue(resultSet.getString("Incoming"));
        cell = row.createCell(7);
        cell.setCellValue(resultSet.getString("Outgoing"));
        i++;
    }}

    FileOutputStream out = new FileOutputStream(new File("exceldatabase.xlsx"));
    workbook.write(out);
    out.close();
    System.out.println("exceldatabase.xlsx written successfully");
}
}
 

}

其余的都无关紧要。

sry我错了。我在XSSF工作簿=新XSSF工作簿()中遇到错误;这个问题无法用代码解决。这不是答案,无法补救。错误发生在XSSF工作簿=新XSSF工作簿()处;org.apache.poi poi 3.17 org.apache.poi ooxml 3.11感谢您的帮助。非常感谢你的建议
public class SpreadsheetGenerator {
void dailyreport( Connection con) throws SQLException, IOException {
Statement statement = con.createStatement();
ResultSet resultSet = null;
try {
    resultSet = statement.executeQuery("select * from ssa_msg_daily");
} catch (Exception e) {

} 
    //ResultSet resultSet = statement.executeQuery("select * from ssa_msg_daily");
    XSSFWorkbook workbook = new XSSFWorkbook();
    XSSFSheet spreadsheet = workbook.createSheet("employe db");

    XSSFRow row = spreadsheet.createRow(1);
    XSSFCell cell;
    cell = row.createCell(1);
    cell.setCellValue("id");
    cell = row.createCell(2);
    cell.setCellValue("Sender");
    cell = row.createCell(3);
    cell.setCellValue("Service");
    cell = row.createCell(4);
    cell.setCellValue("Message_identifier");
    cell = row.createCell(5);
    cell.setCellValue("Date");
    cell = row.createCell(6);
    cell.setCellValue("Incoming");
    cell = row.createCell(7);
    cell.setCellValue("Outgoing");
    int i = 2;

    if(resultSet!=null){
    while (resultSet.next()) {
        row = spreadsheet.createRow(i);
        cell = row.createCell(1);
        cell.setCellValue(resultSet.getInt("id"));
        cell = row.createCell(2);
        cell.setCellValue(resultSet.getString("Sender"));
        cell = row.createCell(3);
        cell.setCellValue(resultSet.getString("Service"));
        cell = row.createCell(4);
        cell.setCellValue(resultSet.getString("Message_identifier"));
        cell = row.createCell(5);
        cell.setCellValue(resultSet.getDate("Date"));
        cell = row.createCell(6);
        cell.setCellValue(resultSet.getString("Incoming"));
        cell = row.createCell(7);
        cell.setCellValue(resultSet.getString("Outgoing"));
        i++;
    }}

    FileOutputStream out = new FileOutputStream(new File("exceldatabase.xlsx"));
    workbook.write(out);
    out.close();
    System.out.println("exceldatabase.xlsx written successfully");
}
}
 

}
XSSFWorkbook workbook = new XSSFWorkbook();