swing中如何将jtable中的数据导入到excel中?

本文介绍了一种使用Java实现从JTable导出Excel文件的方法,支持中文字符显示,需引入jxl.jar库。示例代码展示了如何创建Excel工作簿、添加中文标题及数据。

参考:

http://k.pconline.com.cn/question/2210578.html

http://liuliang136.javaeye.com/blog/551524

最终代码:这个版本的代码是可以支持中文,需要导入jxl.jar包。

/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package Utils; /////////////////////////////////////////////////// // import 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); } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值