Java 将数据从JTable导入Excel
我有代码将数据从JTable导入Excel,如下所示:Java 将数据从JTable导入Excel,java,excel,swing,jtable,Java,Excel,Swing,Jtable,我有代码将数据从JTable导入Excel,如下所示: public void toExcel(JTable table, File file){ try { WritableWorkbook workbook1 = Workbook.createWorkbook(file); WritableSheet sheet1 = workbook1.createSheet("First Sheet", 0); TableModel model = t
public void toExcel(JTable table, File file){
try {
WritableWorkbook workbook1 = Workbook.createWorkbook(file);
WritableSheet sheet1 = workbook1.createSheet("First Sheet", 0);
TableModel model = table.getModel();
for (int i = 0; i < model.getColumnCount(); i++) {
Label column = new Label(i, 0, model.getColumnName(i));
sheet1.addCell(column);
}
int j = 0;
for (int i = 0; i < model.getRowCount(); i++) {
for (j = 0; j < model.getColumnCount(); j++) {
Label row = new Label(j, i + 1,
model.getValueAt(i, j).toString());
sheet1.addCell(row);
}
}
workbook1.write();
workbook1.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
void excell(){
toExcel(TabelPerencanaan, new File("H:\\Hasil.xlsx"));
JOptionPane.showMessageDialog(null, "Data saved at " +
"'H: \\ Hasil.xlsx' successfully", "Message",
JOptionPane.INFORMATION_MESSAGE);
public void toExcel(JTable表、文件){
试一试{
WritableWorkbook workbook1=工作簿.createWorkbook(文件);
WritableSheet sheet1=工作簿1.createSheet(“第一张纸”,0);
TableModel模型=table.getModel();
对于(int i=0;i
}
但是,打开文件“Hasil.xlsx”时总是出错。所以,该文件无法打开。我不知道为什么会这样。谢谢问题在于Java Excel API只生成Excel 2000格式的电子表格。在这种情况下,您需要:
new File("H:\\Hasil.xls")
但是如果您真的需要生成XLSX,您可以使用
Workbook wb=new XSSFWorkbook();
Sheet Sheet=wb.createSheet();
Row Row=sheet.createRow(0);
TableModel模型=table.getModel();
对于(int i=0;i
此错误类似于“Excell无法打开文件'result.xlsx',因为文件格式或文件扩展名无效。请验证文件是否已损坏,以及文件扩展名是否与文件格式匹配。”我发现了类似的错误。。。需要不兼容的类型:找到jxl.Workbook:org.apache.poi.xssf.usermodel.XSSFWorkbook谢谢
Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet();
Row row = sheet.createRow(0);
TableModel model = table.getModel();
for (int i = 0; i < model.getColumnCount(); i++) {
row.createCell(i).setCellValue(model.getColumnName(i));
}
for (int i = 0; i < model.getRowCount(); i++) {
row = sheet.createRow(i + 1);
for (int j = 0; j < model.getColumnCount(); j++) {
row.createCell(j).setCellValue(
model.getValueAt(i, j).toString()
);
}
}
FileOutputStream fileOut = new FileOutputStream("H:\\Hasil.xlsx");
wb.write(fileOut);
fileOut.close();