gpt4 book ai didi

java - 只要我的数组列表中有超过 1 个匹配元素,我如何从 excel 文件填充 JTable? [ java ]

转载 作者:行者123 更新时间:2023-11-30 07:58:58 25 4
gpt4 key购买 nike

[![在此处输入图像描述][1]][1]我在从 excel 文件填充 JTable 时遇到问题。这是操作,我将搜索,比方说“第 1 行”,有 2 个单元格匹配这个值,如果匹配,我想拉行并将其插入我的 JTable。我能够让它工作,但是,这只会为第一个匹配值创建一行,当我再次单击搜索按钮时,如果有超过 1 个匹配项,它将用新行替换该行。

我希望 jtable 将两行添加到同一个表中,而不是逐行添加。我附上了我目前所拥有的。

先谢谢你。

try {
FileInputStream fis = new FileInputStream(
new File("S:\\Tester Support\\0LineTester Database\\Audit\\LASAudit.xlsx"));
XSSFWorkbook workbook = new XSSFWorkbook(fis);
Sheet sheet = workbook.getSheetAt(0);

for (Row row : sheet) {
for (Cell cell : row) {
if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
if (cell.getRichStringCellValue().getString().trim().equals(LinNum_Text.getText())) {
int rowNum = row.getRowNum();

Row r = sheet.getRow(rowNum);
DefaultTableModel model = new DefaultTableModel();

int col_0 = 0;
String val_0 = r.getCell(col_0).getStringCellValue();
int col_1 = 1;
String val_1 = r.getCell(col_1).getStringCellValue();
int col_2 = 2;
String val_2 = r.getCell(col_2).getStringCellValue();
int col_3 = 3;
String val_3 = r.getCell(col_3).getStringCellValue();

model.addColumn("ID", new Object[] { val_0 });
model.addColumn("Date", new Object[] { val_1 });
model.addColumn("Auditor Name", new Object[] { val_2 });
model.addColumn("Line #", new Object[] { val_3 });

table = new JTable(model);
table.setVisible(true);

JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 278, 670, 303);
contentPane.add(scrollPane);
scrollPane.setViewportView(table);

}
}
}
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}

最佳答案

I was able to get this working, however, this only creates one row for the first matching value,

那是因为在您的“循环代码”中,您每次都创建了一个新的 JTable。

相反,您希望创建一次表并在循环内将数据添加到您的 TableModel。所以你的代码结构应该是这样的:

String[] columnNames = { "Id", "Date", ... };
DefaultTableModel model = new DefaultTableModel(columnNames, 0);

for (...)
{
...

if (matched row found)
{
...

Object[] row = { val_0, val_1, ...};
model.addRow( row );
}

JTable table = new JTable( model );
...

关于java - 只要我的数组列表中有超过 1 个匹配元素,我如何从 excel 文件填充 JTable? [ java ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39895610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com