[转]swing中如何将jtable中的数据导入到excel中?
这个版本的代码是可以支持中文,需要导入jxl.jar包,并添加到Build Path中(自行搜索下载)。
最终代码:
package test; import java.awt.event.*; import java.io.*; import javax.swing.*; import javax.swing.table.*; import jxl.*; import jxl.write.*; import jxl.write.biff.RowsExceededException; /** * * @author Administrator */ public class ExcelExporter { public ExcelExporter() { } public void exportTable(JTable table, File file) throws IOException { try { OutputStream out = new FileOutputStream(file); TableModel model = table.getModel(); WritableWorkbook wwb = Workbook.createWorkbook(out); // 创建字表,并写入数据 WritableSheet ws = wwb.createSheet("中文", 0); // 添加标题 for (int i = 0; i < model.getColumnCount(); i++) { jxl.write.Label labelN = new jxl.write.Label(i, 0, model.getColumnName(i)); try { ws.addCell(labelN); } catch (RowsExceededException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (WriteException e) { // TODO Auto-generated catch block e.printStackTrace(); } } // 添加列 for (int i = 0; i < model.getColumnCount(); i++) { for (int j = 1; j <= model.getRowCount(); j++) { jxl.write.Label labelN = new jxl.write.Label(i, j, model.getValueAt(j - 1, i).toString()); try { ws.addCell(labelN); } catch (RowsExceededException e) { e.printStackTrace(); } catch (WriteException e) { e.printStackTrace(); } } } wwb.write(); try { wwb.close(); } catch (WriteException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { JOptionPane.showMessageDialog(null, "导入数据前请关闭工作表"); } } public static void main(String[] args) { String[][] data = { {"中文", "$1275.00"}, {"Pets", "$125.00"}, {"Electronics", "$2533.00"}, {"Mensware", "$497.00"} }; String[] headers = {"Department", "Daily Revenue"}; JFrame frame = new JFrame("JTable to Excel Hack"); DefaultTableModel model = new DefaultTableModel(data, headers); final JTable table = new JTable(model); JScrollPane scroll = new JScrollPane(table); JButton export = new JButton("Export"); export.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { try { ExcelExporter exp = new ExcelExporter(); exp.exportTable(table, new File("results.xls")); } catch (IOException ex) { System.out.println(ex.getMessage()); ex.printStackTrace(); } } }); frame.getContentPane().add("Center", scroll); frame.getContentPane().add("South", export); frame.pack(); frame.setVisible(true); } }
程序运行效果图:
程序会在当前目录下导出一个名为results.xls的Excel,效果图:
分类:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2016-03-15 虚拟地球原理与实现
2016-03-15 开源(免费)三维 GIS(地形,游戏)
2016-03-15 [转]有关WorldWind1.4的worldwind.cs窗口设计器打开错误的解决方法
2016-03-15 [转]仿World Wind构造自己的C#版插件框架——WW插件机制精简改造
2015-03-15 GeoServer+MySQL安装及配置过程
2015-03-15 GeoServer 常见问题总结