我刚在做 给你点看看 导入导出两个方法。
public static void exportData(Vector<String> heads,Vector<Vector<Object>> datas,String sheetName) {
//配置JFileChooser
JFileChooser chooser=new JFileChooser("."){
public void approveSelection(){
if(this.getSelectedFile().exists()){
int flag=JOptionPane.showConfirmDialog(null, "文件已经存在,是否覆盖","保存",JOptionPane.YES_NO_OPTION);
if(flag==JOptionPane.YES_OPTION){
super.approveSelection();
}
}else
super.approveSelection();
}
};
String fileName="datas"+".xls";
chooser.setSelectedFile(new File(fileName));
chooser.setAcceptAllFileFilterUsed(false);
chooser.setFileFilter(new FileFilter(){
public boolean accept(File f) {
if(f.isDirectory()||f.getName().endsWith(".xls"))
return true;
return false;
}
public String getDescription() {
return "Excel文件(.xls)";
}
});
//与excel交互
int flag=chooser.showSaveDialog(null);
if(flag==JFileChooser.APPROVE_OPTION){
jxl.Workbook wb=null;
jxl.write.WritableWorkbook wwb=null;
jxl.write.WritableSheet ws=null;
File file=chooser.getSelectedFile();
try {
if(file.exists()){
try {
wb=Workbook.getWorkbook(file);//文件存在则副本
wwb=jxl.Workbook.createWorkbook(file,wb);
} catch (BiffException e1) {
JOptionPane.showMessageDialog(null,"请先关闭该文件!");
return;
} catch (IOException e1) {
JOptionPane.showMessageDialog(null,"请先关闭该文件!");
return;
}
}else{
wwb=jxl.Workbook.createWorkbook(file);//文件不存在则新增
}
if(wwb.getSheet(sheetName)==null){
ws=wwb.createSheet(sheetName,0);//sheetName不存在则新增到0
}else{
ws=wwb.getSheet(sheetName);//sheetName存在则获取该页并清空数据
for(int row=1;row<ws.getRows();row++){
ws.removeRow(row);
}
}
for(int col=0;col<heads.size();col++){//加入表头
jxl.write.Label label=new jxl.write.Label(col,0,heads.get(col));
ws.addCell(label);
}
for(int row=0;row<datas.size();row++){//加入数据
for(int col=0;col<datas.get(row).size();col++){
if(datas.get(row).get(col).getClass()==String.class){
jxl.write.Label cell=new jxl.write.Label(col,row+1, datas.get(row).get(col).toString());
ws.addCell(cell);
}
if(datas.get(row).get(col).getClass()==BigDecimal.class){
jxl.write.Number cell=new jxl.write.Number(col,row+1, ((BigDecimal)datas.get(row).get(col)).doubleValue());
ws.addCell(cell);
}
if(datas.get(row).get(col).getClass()==BigInteger.class){
jxl.write.Number cell=new jxl.write.Number(col,row+1, ((BigInteger)datas.get(row).get(col)).doubleValue());
ws.addCell(cell);
}
if(datas.get(row).get(col).getClass()==Long.class){
jxl.write.Number cell=new jxl.write.Number(col,row+1, ((Long)datas.get(row).get(col)).doubleValue());
ws.addCell(cell);
}
if(datas.get(row).get(col).getClass()==Integer.class){
jxl.write.Number cell=new jxl.write.Number(col,row+1, ((Integer)datas.get(row).get(col)).doubleValue());
ws.addCell(cell);
}
if(datas.get(row).get(col).getClass()==Float.class){
jxl.write.Number cell=new jxl.write.Number(col,row+1, ((Float)datas.get(row).get(col)).doubleValue());
ws.addCell(cell);
}
if(datas.get(row).get(col).getClass()==Double.class){
jxl.write.Number cell=new jxl.write.Number(col,row+1, ((Double)datas.get(row).get(col)).doubleValue());
ws.addCell(cell);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
wwb.write();
wwb.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
}
}
追问能不能把文件发我,就这个项目整个发我、这么看还是挺模糊的
追答自己看看JXL的介绍吧 内容没多少的 花一个下午就够了 就是WorkBook WritableWorkBook Sheet writablesheet cell cellforamt celltype 没多少东西的
追问我看过就是一些次要的东西不太懂、有个实例看看好多了,你发我一份好不啦、拜托拜托啊
追答整个项目给你看 你就更加云里雾里了 学JAVA别浮躁 静下心来仔细看API 做个小测试 别老想着一口吃掉一头大象