首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

java导出文件弹出下载框让用户选择路径(5)

java导出文件弹出下载框让用户选择路径(5)

桌面程序-swing弹出

swing只会在服务器中弹出,多用于 桌面程序-----如果用在web中则 在页面点击时,选择框在服务器弹出。

swing

    public static String writeExcel(String[][] titles, String title) {
     
            String fileName = "";
            JFileChooser dialog = new JFileChooser();
            dialog.setDialogTitle("保存文件");
            dialog.setFileSelectionMode(JFileChooser.FILES_ONLY);
            FileSystemView fsv = FileSystemView.getFileSystemView();
            System.out.println(fsv.getHomeDirectory()); // 得到桌面路径
            dialog.setCurrentDirectory(fsv.getHomeDirectory()); // 设置默认保存路径为桌面路径
            // dialog.setDialogType(JFileChooser.SAVE_DIALOG);
            dialog.setSelectedFile(new File("订单列表"
                    + Calendar.getInstance().getTimeInMillis() + ".xls")); // 设置默认文件名
            dialog.setFileFilter(new TextFileFilter("*.xls", "文本文档(*.xls)"));
            int result = dialog.showSaveDialog(dialog);
            if (result == JFileChooser.APPROVE_OPTION) {
                File file = dialog.getSelectedFile();
                fileName = file.getAbsolutePath(); // 得到文件全名
     
                WritableWorkbook wwb = null;
                try {
                    // 首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
     
                    wwb = Workbook.createWorkbook(new File(fileName));
                } catch (IOException e) {
                    e.printStackTrace();
                }
                if (wwb != null) {
                    // 创建一个可写入的工作表
                    // Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置
                    WritableSheet ws = wwb.createSheet(title, 1);
     
                    // 下面开始添加单元格
                    for (int row = 0; row < titles.length; row++) {
                        // System.out.println(row);
                        for (int j = 0; j < titles[row].length; j++) {
                            // 这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
                            Label labelC = new Label(j, row, titles[row][j]);
     
                            try {
                                // 将生成的单元格添加到工作表中
                                ws.addCell(labelC);
                            } catch (RowsExceededException e) {
                                e.printStackTrace();
                            } catch (WriteException e) {
                                e.printStackTrace();
                            }
                        }
                    }
     
                    try {
                        // 从内存中写入文件中
                        wwb.write();
                        // 关闭资源,释放内存
                        wwb.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    } catch (WriteException e) {
                        e.printStackTrace();
                    }
                }
            }
            return fileName;
        }
返回列表