标题:
java导出文件弹出下载框让用户选择路径(5)
[打印本页]
作者:
look_w
时间:
2019-4-20 14:55
标题:
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;
}
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0