[java]实现导出Excel文件和XML文件
一、功能简述
点击“导出”按钮,弹出文件选择对话框,选择存放路径,填写文件名,点击“导出”按钮导出界面上table中的数据到指定路径
添加:dom4j-1.6.1.jar,用于XML
二、实现效果
2.1 界面数据
2.2 文件选择对话框
2.3 导出成功后,文件内容
三、代码
[java]
public class ExportFileService {
private static final String SAVEPATH = "D:\\";
private static final String BUTTONTEXT = "导出";
private static final String TITLE = "导出数据";
public ExportFileService(){
}
/**
*
* @param filters 可选择的导出类型
* @return file[0] 文件全路径;file[1] 导出类型
*/
public static String[] exportFile(List<FileFilter> filters){
JFileChooser fileChooser = initEmportFile(filters);
int result = fileChooser.showOpenDialog(null);
String type = fileChooser.getFileFilter().getDescription();
if (result == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
String fn = file.getPath();
String[] fileAndType = new String[2];
fileAndType[0]=fn;
fileAndType[1]=type;
return fileAndType;
}
return null;
}
/**
* 文件对话框中判断是否覆盖已存在文件,加入带导入类型
* @param filters 可选择的导入类型
* @return 文件选择框
*/
private static JFileChooser initEmportFile(List<FileFilter> filters) {
JFileChooser fileChooser = new JFileChooser(SAVEPATH) {
private static final long serialVersionUID = 1L;
public void approveSelection() {
File file;
String fileName = this.getSelectedFile().getAbsolutePath();
file = new File(fileName);
if (file.exists()) {
int copy = JOptionPane.showConfirmDialog(null,
"是否要覆盖当前文件?", "保存", JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (copy == JOptionPane.YES_OPTION) {
super.setSelectedFile(file);
super.approveSelection();
}
} else
super.approveSelection();
}
};
fileChooser.setAcceptAllFileFilterUsed(false);
fileChooser.setApproveButtonText(BUTTONTEXT);
fileChooser.setDialogTitle(TITLE);
for(FileFilter one :filters){
fileChooser.addChoosableFileFilter( one);
}
return fileChooser;
}
/**
* 创建新的Excel 工作簿
* @param filename 待导出文件名称的全路径,不带后缀
* @param data 待导出数据,首个list<Object>是字段信息
* @param sheetName 表单名称
* @return true 导出成功;false 导出失败
*/
@SuppressWarnings("deprecation")
public static boolean createExcel(String filename, List<List<Object>> data,
String sheetName) {
HSSFWorkbook workbook = null;
HSSFSheet sheet = null;
HSSFRow[] rows = null;
HSSFCell[][] cells = null;
workbook = new HSSFWorkbook();
if (sheetName.trim().equals("")) {
sheet = workbook.createSheet("表");
} else {
sheet = workbook.createSheet(sheetName);
}
try {
int row
补充:软件开发 , Java ,