zoukankan      html  css  js  c++  java
  • java 导出exceL

    //经过一天努力终于完成自己excel导,收获最大的就是基础知识还是需要经常温习,最重要的一点事要敢于尝试,只要敢想敢做就有实现的可能!

    public class ImportExportExcel {
        /**
         * 对象数据写入到excel
         */
        public  boolean  writeExcel(List<?> List,String ExcelFileName,String workSheetName)
        {
                WritableWorkbook book=null;
                try
                {
                    String fileName = "D:/学校竞争力情况.xls";
                    if(new File(fileName).exists())
                    {
                        File path=new File(fileName);
                        //System.out.println("存在");
                        deleteAllFilesOfDir(path);
                    }
                    File file = new File(fileName);//根据文件名创建一个文件对象
                    //打开文件
                    book=Workbook.createWorkbook(file);
                    //参数零表示第一页
                    WritableSheet sheet=book.createSheet(workSheetName,0);
                    
                     //设置单元格的文字格式
                    WritableFont wf = new WritableFont(WritableFont.ARIAL,12,WritableFont.NO_BOLD,false,
                            UnderlineStyle.NO_UNDERLINE,Colour.BLUE); //设置字体大小以及颜色
                    WritableCellFormat wcf = new WritableCellFormat(wf); //设置字体格式
                    wcf.setVerticalAlignment(VerticalAlignment.CENTRE);  //设置竖直居中
                   // wcf.setAlignment(Alignment.CENTER);
                    wcf.setWrap(true);
                    
                    
                    
               
                    
                    if(List!=null&&!List.isEmpty())
                    {
                        
                        for(int i=0;i<List.size();i++)
                        {
                               sheet.setRowView(i, 500);
                               //表头
                               Map<String,Object> hs=new HashMap<String,Object>();
                               hs=(Map<String, Object>)List.get(i);
                            
                               int m=0;
                               int t=0;             
                               if(i==0)
                               {
                                   for(Object keyval:hs.keySet())
                                   {
                                       jxl.write.Label label;
                                      /* if (i==0)
                                       {
                                            //Label(列号,行号 ,内容 ) 添加excel  标题
                                            label = new jxl.write.Label(t, 0, (String)keyval); //put the title in row1
                                            sheet.addCell(label);
                                       }*/
                                        //获取值类型
                                       
                                       Object param =hs.get(keyval);
                                       if(param instanceof Integer)
                                       {
                                            int intvalue =((Integer)param).intValue();
                                           //添加数字
                                            jxl.write.Number number = new jxl.write.Number(m,1,intvalue); //put the
                                            sheet.addCell(number);
                                           //Label(列号,行号 ,内容 ) 添加excel  标题
                                            
                                            label = new jxl.write.Label(m,0,(String)keyval); //put the title in row1
                                            sheet.addCell(label);
                                            sheet.setColumnView(m, 10);
                                            
                                       }
                                       else if(param instanceof String)
                                       {
                                           String s=(String) param;  
                                           //添加数字
                                         //添加带有字型Formatting的对象
                                           jxl.write.WritableFont wff= new jxl.write.WritableFont(WritableFont.TIMES,10,WritableFont.BOLD,true);
                                           jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wff);
                                           jxl.write.Label labelCF = new jxl.write.Label(m,1,s,wcfF);
                                           sheet.addCell(labelCF);
                                           //Label(列号,行号 ,内容 ) 添加excel  标题
                                            
                                            label = new jxl.write.Label(m,0,(String)keyval); //put the title in row1
                                            sheet.addCell(label);
                                            sheet.setColumnView(m, 10);
                                       }
                                       else if (param instanceof Double)
                                       {  
                                           Double doubled =((Double) param).doubleValue();
                                           //添加数字
                                           jxl.write.Number number = new jxl.write.Number(m,1,doubled); //put the
                                           sheet.addCell(number);
                                           //Label(列号,行号 ,内容 ) 添加excel  标题
                                            
                                            label = new jxl.write.Label(m,0,(String)keyval); //put the title in row1
                                            sheet.addCell(label);
                                            sheet.setColumnView(m, 10);
                                       }
                                       else if(param instanceof Float)  
                                       {   
                                           float f =((Float) param).floatValue();
                                           //添加数字单精度浮点类型
                                           jxl.write.Number number = new jxl.write.Number(m,1,f); //put the
                                           sheet.addCell(number);
                                           //Label(列号,行号 ,内容 ) 添加excel  标题
                                            label = new jxl.write.Label(m,0,(String)keyval); //put the title in row1
                                            sheet.addCell(label);
                                            sheet.setColumnView(m, 10);
                                       }
                                       else if(param instanceof Long)
                                       {   
                                           long l =((Long) param).longValue();
                                           //添加数字 长整形
                                           jxl.write.Number number = new jxl.write.Number(m,1,l); //put the
                                           sheet.addCell(number);
                                           //Label(列号,行号 ,内容 ) 添加excel  标题
                                            
                                            label = new jxl.write.Label(m,0,(String)keyval); //put the title in row1
                                            sheet.addCell(label);
                                            sheet.setColumnView(m, 10);
                                       }
                                       else if(param instanceof Boolean)   //添加bool对象
                                       {
                                           boolean b =((Boolean) param).booleanValue();
                                           //3.添加Boolean对象
                                           jxl.write.Boolean labelB = new jxl.write.Boolean(m,1,b);
                                           sheet.addCell(labelB);
                                           //Label(列号,行号 ,内容 ) 添加excel  标题
                                            
                                            label = new jxl.write.Label(m,0,(String)keyval); //put the title in row1
                                            sheet.addCell(label);
                                            sheet.setColumnView(m, 10);
                                       }
                                       else if(param instanceof Date)
                                       {    
                                           Date d=(Date) param;
                                           //4.添加DateTime对象
                                           jxl.write.DateTime labelDT = new jxl.write.DateTime(m,1,new java.util.Date());
                                           sheet.addCell(labelDT);
                                           //Label(列号,行号 ,内容 ) 添加excel  标题
                                            
                                            label = new jxl.write.Label(m,0,(String)keyval); //put the title in row1
                                            sheet.addCell(label);
                                            sheet.setColumnView(m, 10);
                                       }
                                       m++;
                                       
                                   }
                               }
                               else
                               {
                                   for(Object keyval:hs.keySet())
                                   {
                                       Object param =hs.get(keyval);
                                       if(param instanceof Integer)
                                       {
                                            int intvalue =((Integer)param).intValue();
                                           //添加数字
                                            jxl.write.Number number = new jxl.write.Number(t,i,intvalue); //put the
                                            sheet.addCell(number);
                                            sheet.setColumnView(t, 10);
                
                                       }
                                       else if(param instanceof String)
                                       {
                                           String s=(String) param;  
                                           //添加数字
                                            //添加带有字型Formatting的对象
                                           jxl.write.WritableFont wff= new jxl.write.WritableFont(WritableFont.TIMES,10,WritableFont.BOLD,true);
                                           jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wff);
                                           jxl.write.Label labelCF = new jxl.write.Label(t,i,s,wcfF);
                                           sheet.addCell(labelCF);
                                           sheet.setColumnView(t, 10);
                                       }
                                       else if (param instanceof Double)
                                       {  
                                           Double doubled =((Double) param).doubleValue();
                                           //添加数字
                                           jxl.write.Number number = new jxl.write.Number(t,i,doubled); //put the
                                           sheet.addCell(number);
                                           sheet.setColumnView(t, 10);
                                       }
                                       else if(param instanceof Float)  
                                       {   
                                           float f =((Float) param).floatValue();
                                           //添加数字单精度浮点类型
                                           jxl.write.Number number = new jxl.write.Number(t,i,f); //put the
                                           sheet.addCell(number);
                                           sheet.setColumnView(t, 10);
                                       }
                                       else if(param instanceof Long)
                                       {   
                                           long l =((Long) param).longValue();
                                           //添加数字 长整形
                                           jxl.write.Number number = new jxl.write.Number(t,i,l); //put the
                                           sheet.addCell(number);
                                           sheet.setColumnView(t, 10);

                                       }
                                       else if(param instanceof Boolean)   //添加bool对象
                                       {
                                           boolean b =((Boolean) param).booleanValue();
                                           //3.添加Boolean对象
                                           jxl.write.Boolean labelB = new jxl.write.Boolean(t,i,b);
                                           sheet.addCell(labelB);
                                           sheet.setColumnView(t, 10);
                                       }
                                       else if(param instanceof Date)
                                       {    
                                           Date d=(Date) param;
                                           //4.添加DateTime对象
                                           jxl.write.DateTime labelDT = new jxl.write.DateTime(t,i,new java.util.Date());
                                           sheet.addCell(labelDT);
                                           sheet.setColumnView(t, 10);
                                       }
                                       t++;
                                   }
                               }
                               i++;
                        }
                    }
                    //写入数据并关闭文件
                    book.write();
                }
                catch(Exception ex)
                {
                    System.out.println(ex);
                }
                finally
                {
                    if(book!=null)
                    {
                        try
                        {
                            book.close();
                            return true;
                        }
                        catch(Exception ex)
                        {
                            ex.printStackTrace();
                        }
                    }
                }
            
                return false;
               
                
        }

        
        public static void deleteAllFilesOfDir(File path) {  
            if (!path.exists())  
                return;  
            if (path.isFile()) {  
                path.delete();  
                return;  
            }  
            File[] files = path.listFiles();  
            for (int i = 0; i < files.length; i++) {  
                deleteAllFilesOfDir(files[i]);  
            }  
            path.delete();  
        } 

  • 相关阅读:
    运算符重载
    LPCRITICAL_SECTION 函数
    让你弄明白高斯核是怎样进行滤波工作的
    sln文件
    内联函数
    C++对文本的操作
    数组形参
    内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区[C++][内存管理]
    怎样对付win7黑屏
    C++ 模板
  • 原文地址:https://www.cnblogs.com/lykbk/p/fghgfhghgghghg56565656565656.html
Copyright © 2011-2022 走看看