当前位置: 首页 > 知识库问答 >
问题:

从xlsx表中获取数据,但没有显示jtable中的最后三行

田兴旺
2023-03-14
enter code here


     JFileChooser fileChooser = new JFileChooser("D:");
    
        int returnValue = fileChooser.showOpenDialog(null);
        if (returnValue == JFileChooser.APPROVE_OPTION) {
        selectedFile = fileChooser.getSelectedFile();

        FileName = selectedFile.getName();
        String FilePath = selectedFile.getPath();
        System.out.println(FileName);
        System.out.println(FilePath);
      
        File excelfile = new File(FileName);
        
       try{ 
       
       FileInputStream fis = new FileInputStream(selectedFile);
         
       XSSFWorkbook wb = new XSSFWorkbook(fis);
       XSSFSheet sheet = wb.getSheetAt(0);
       int totalrows = sheet.getPhysicalNumberOfRows();
       
                
    
       for (int i = 0; i <=totalrows; )
       {
    
        dmodel.addRow(new Object[]{"" });
     
       System.out.println(sheet.getRow(i).getCell(0).getStringCellValue());   // this line work
       String name = sheet.getRow(i).getCell(0).getStringCellValue();  
       jTable1.setValueAt(name , i, 0);    // this line does not work        
        
       i++ ;
      
       
       
      } 
       
          JOptionPane.showMessageDialog(null, "All rows are fetched Successfully" );
       
       
       
   }catch(Exception fx)
          {
          System.out.println(fx.getMessage()); 
         // System.out.println(fx.getCause());
          
          }

共有1个答案

彭弘方
2023-03-14
   System.out.println(sheet.getRow(r).getCell(c).getStringCellValue());   // this line work
   String name = sheet.getRow(i).getCell(c).getStringCellValue();  
   jTable1.setValueAt(name , i, 0);    // this line does not work

我不知道这是否能解决您的问题,但上面的代码不是您如何使用System.out.println(...)来调试逻辑。

要验证您使用的数据:

   //System.out.println(sheet.getRow(r).getCell(c).getStringCellValue());   // this line work
   String name = sheet.getRow(i).getCell(c).getStringCellValue();  
   System.out.println( name );
   jTable1.setValueAt(name , i, 0);    // this line does not work

不要尝试读取数据两次。通过将数据赋值给变量,您正在调试变量中的数据。不要多次重复嵌套方法。

 类似资料:
  • 问题内容: 我正在使用jdbc编写程序,该程序将成为数据库的接口(类似于CRUD应用程序)。我假设我必须编写一个类(例如),该类将对数据库执行所有操作(以及可能会简化为这些操作的某些其他逻辑)。用户界面由一组表和一些按钮组成。要使用Jtable,我需要实现一个类(例如),它是AbstractTableModel的子类。因此,此类将向用户显示我的数据。我需要为数据库架构中的所有表实现这种模型。我不想

  • 我有一个显示良好的JTable。如果我将表放在JScrollPane中,它将不再显示。为什么不呢?我想在自己的JScrollPane中添加两个表。下面是我的代码,其中我只尝试向第一个表添加一个JScrollPane: 谢了。

  • 问题内容: 什么是最好,最简单的方法?我的查询当前是: 但是,这显示前10行,而不显示最后10行。 编辑:我想要最后10行(这是,DESC做到这一点)但是,我希望它们以升序返回。 问题答案: 颠倒顺序(因此获得最后10个而不是前10个),请使用代替 编辑 根据您的评论:

  • 我有一个称为“Profile”的对象列表,每个Profile都有一个功能列表(一个Profile可以做的事情)和一个与该Profile关联的用户列表。 我想在一个JTable中显示这些信息。首先,用le功能显示配置文件,然后显示该配置文件中的用户。类似这样的事情: 因此,首先,我实现了一个更聪明的getRowCount()方法,然后是一个getValueAt方法,该方法在JTable中打印一个配置

  • 我使用改装来显示数据,但数据没有显示出来。我不知道哪里出错了。在logcat中,我得到的响应如下: 2019-12-26 20:34:39.847 28305-28305/com.example.androidtutorial E/helloash: [com.example.androidtutorial.GetAheadFolder.JavaDatum@36ebcd9] 我需要帮助。。谢谢 G

  • 我的数据确实显示在console.log中,但实际上没有显示在表中,我在这里做错了什么?