Swing表格数据转xls文档
2021-02-01 02:16
标签:设置 save ssi efault buffer pre dial 打开 LTP 花了一下午的时间终于实现了Swing表格数据转xls文档与读取xls文档数据。 接下来上代码 1.弹出文件,目录选择框 2.表格数据导出 3.读取xls文档数据 Swing表格数据转xls文档 标签:设置 save ssi efault buffer pre dial 打开 LTP 原文地址:https://www.cnblogs.com/free-discipline/p/11605841.htmlexportBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String name = "数据.xls";
String defaultPath = "D://temp";
//构造文件保存对话框
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
chooser.setDialogType(JFileChooser.SAVE_DIALOG);
chooser.setMultiSelectionEnabled(false);
chooser.setAcceptAllFileFilterUsed(false);
chooser.setDialogTitle("保存数据文件");
//设置默认路径
File defaultFile = new File(defaultPath+"//data");
if(!defaultFile.exists()){
defaultFile.mkdirs();
}
chooser.setCurrentDirectory(new File(defaultPath));
//打开对话框
int result = chooser.showSaveDialog(getWindow());//null
//文件确定
if(result==JFileChooser.APPROVE_OPTION) {
String outPath = chooser.getSelectedFile().getAbsolutePath();
File f = new File(outPath);
if(f.isDirectory()) {
outPath = outPath+"\\"+name;
}
if(new File(outPath).exists()){
int b = DialogUtils.showYesNoOptionDialog(getWindow(), "文件已经存在,是否要覆盖该文件?","操作确认");
if(b!=0){
return;
}
}
File file = new File(outPath);
ExcelExporter ee = new ExcelExporter();
try {
ee.exportTable(xTable, file);
} catch (IOException e1) {
new RuntimeException(e1);
}
}
}
});
package net.doublecom.sdk.tool.wirelessinfo.view;
import java.io.*;
import org.freeabc.client.core.component.table.XTable;
public class ExcelExporter {
public ExcelExporter() { }
public void exportTable(XTable> xtable, File file) throws IOException { //Xtable自定义组件,也可换成Jtable
// TableModel tableModel = new JTable().getModel();
// tableModel.getColumnCount()
FileWriter out = new FileWriter(file);
for(int i=0; i ) {
if("名称.equals(xtable.getColumnName(i))||"年龄".equals(xtable.getColumnName(i)))
out.write(xtable.getColumnName(i) + "\t");
}
out.write("\n");
for(int i=0; i) {
for(int j=0; j ) {
if("名称".equals(xtable.getColumnName(j))||"年龄".equals(xtable.getColumnName(j)))
out.write(xtable.getValueAt(i,j).toString()+"\t");
}
out.write("\n");
}
out.close();
System.out.println("write out to: " + file);
}
}
importBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String defaultPath = "D://temp//data//";
//构造文件保存对话框
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
chooser.setDialogType(JFileChooser.SAVE_DIALOG);
chooser.setMultiSelectionEnabled(false);
chooser.setAcceptAllFileFilterUsed(false);
chooser.setDialogTitle("加载数据文件");
//设置默认路径
File defaultFile = new File(defaultPath);
if(defaultFile.exists()){
chooser.setCurrentDirectory(new File(defaultPath));
}
//取得文件名输入框设置指定格式
chooser.addChoosableFileFilter(new FileFilter() {
@Override
public String getDescription() {
return "Excel文件(*.xls)";
}
@Override
public boolean accept(File f) {
if (f.getName().endsWith("xls") || f.isDirectory()) {
return true;
}else{
return false;
}
}
});
//打开对话框
int result = chooser.showSaveDialog(getWindow());//null
//文件确定
if(result==JFileChooser.APPROVE_OPTION) {
String outPath = chooser.getSelectedFile().getAbsolutePath();
File file = new File(outPath);
try {
StringBuffer sb = new StringBuffer();
List
上一篇:Luogu P3629 [APIO2010]巡逻【题解】树的直径
下一篇:Asp.Net Core 2.x 和 3.x WebAPI 使用 Swagger 时 API Controller 控制器 Action 方法 隐藏 hidden 与 and 分组 group