将Java Swing JTable头导出到Excel
在我的应用程序中,我已经将表格内容导出到Excel,但结果不包括表格标题。想知道如何将JTable
导出到Excel,并包含表格标题吗?我尝试了几种方法,但仍然无法在excel中看到表格标题,以下是我的代码:
defautTableModel = new DefaultTableModel(null,columnNames){
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
};
// the jTable row are generated dynamically.
final JTable jTable = new JTable(defautTableModel);
jTable.setLocation(20,60);
jTable.setSize(950,450);
jTable.setRowHeight(25);
JTableHeader jTableHeader = jTable.getTableHeader();
jTableHeader.setLocation(20,30);
jTableHeader.setSize(950,30);
jTableHeader.setFont(new Font(null, Font.BOLD, 16));
jTableHeader.setResizingAllowed(true);
jTableHeader.setReorderingAllowed(true);
jTable.add(jTableHeader);
JScrollPane tablePanel = new JScrollPane(jTable);
tablePanel.setLocation(10,10);
tablePanel.setSize(960,400);
// export data to excel method
public void exportToExcel(){
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet();
for (int i = 0; i < defautTableModel.getRowCount(); i++) {
Row = sheet.createRow(i);
for (int j = 0; j < defautTableModel.getColumnCount(); j++) {
Cell = Row.createCell(j);
try {
if (defautTableModel.getValueAt(i,j) != null){
Cell.setCellValue(defautTableModel.getValueAt(i,j).toString());
FileOutputStream fileOut = new FileOutputStream(Constant.Path_TestData_Output);
wb.write(fileOut);
fileOut.flush();
fileOut.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
# 1 楼答案
将带有JTable索引的Java Swing JTable头导出到Excel
# 2 楼答案
您只访问数据列,需要先获取标题列。 你可以通过不同的方法来实现它,或者使用
getColumnName
正如ThomasEdwin在他的评论中提到的,或者使用您提供给模型构造函数的columnNames
变量:new DefaultTableModel(null,columnNames)
希望有帮助