code: public static List<List<Object>> getAllTableData(ObjectTableModel model, Format[] formats) {
          List<List<Object>> data = new ArrayList<>();
          if (model.getRowCount() > 0) {
              for (int rw = 0; rw < model.getRowCount(); rw++) {
                  int cols = model.getColumnCount();
                  List<Object> column = new ArrayList<>();
                  data.add(column);
                  for (int idx = 0; idx < cols; idx++) {
                      Object val = model.getValueAt(rw, idx);
                      if (formats[idx] != null) {
                          column.add(formats[idx].format(val));
                      } else {
                          column.add(val);
                      }
                  }
              }
          }
          return data;
      }
docs: We use this method to get the data, since we are using
  ObjectTableModel, so the calling getDataVector doesn't
  work as expected.
  
  @param model   {@link ObjectTableModel}
  @param formats Array of {@link Format} array can contain null formatters in this case value is added as is
  @return the data from the model