zoukankan      html  css  js  c++  java
  • 一个简单的文档导出公共处理类

    package com.common.export;
    
    import java.io.OutputStream;
    import java.lang.reflect.Field;
    import java.util.List;
    
    import jxl.Workbook;
    import jxl.format.UnderlineStyle;
    import jxl.write.Label;
    import jxl.write.WritableCellFormat;
    import jxl.write.WritableFont;
    import jxl.write.WritableSheet;
    import jxl.write.WritableWorkbook;
    /**
     * 导入导出
     * @author dell
     *
     */
    public class ExportOrImport {
        
        // 大标题样式
        static WritableFont bigTitleFont = new WritableFont(WritableFont.ARIAL, 10,
                WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE);
        static WritableCellFormat titleFormat = new WritableCellFormat(bigTitleFont);
    /**
     * 导出数据
     * @param os
     * @param obj
     * @param head
     * @throws Exception
     */
        public static <T> void export(OutputStream os, List<T> obj, String[] head,String[] fidldName)
                throws Exception {
            // 创建工作薄
            WritableWorkbook workbook = Workbook.createWorkbook(os);
            // 创建新的一页
            WritableSheet sheet = workbook.createSheet("First Sheet", 0);
            // 创建要显示的具体内容
            // String[] head = HeaderExcel.List;
            for (int i = 0; i < head.length; i++) {
                Label formate = new Label(i, 0, head[i] + "", titleFormat);
                sheet.addCell(formate);
            }
            int i = 0;
             Field  field  = null;
            for (T t : obj) {
                 Object [] objw=new Object[50];
                  int k = 0;
                  //System.err.println(fidldName.length);
                  if (fidldName==null) {
                      java.lang.reflect.Field[] fields = t.getClass().getDeclaredFields();
                      for(java.lang.reflect.Field f:fields){
                            //私有变量必须先设置Accessible为true
                                f.setAccessible(true);
                                if(f.get(t) != null)
                                    objw[k]=f.get(t);
                                else
                                    objw[k]="-";
                                k++;
                                }
                  }else{
                  for (int j = 0; j < fidldName.length; j++) {
                       field = t.getClass().getDeclaredField(fidldName[j]); 
                       field.setAccessible(true);
                       if(field.get(t) != null)
                            objw[k]=field.get(t);
                        else
                            objw[k]="-";
                        k++;
                        }
                  }
                for (int j = 0; j < head.length; j++) {
                        Label data = new Label(j, 1 + i, "" + objw[j]);
                        sheet.addCell(data);
                }
                i++;
            }
            // 把创建的内容写入到输出流中,并关闭输出流
            workbook.write();
            workbook.close();
            os.close();
        }
    }

    调用方法:

    //数据集合
    List<Funture> list =(List<Funture>) map.get("funtureDate");
    //表名称
    String name="{"+pointName+"}数据查询导出数据";
    String fileName = new String( (name).getBytes("GBK"), "iso-8859-1");
    OutputStream os = new FileOutputStream(fileName + ".xls");
    //实体字段
    String[] SmartStrip={"createTime","deviceName"};
    //表头
    public static String[] smart={"时间","设备名称",};
    
    ExportOrImport.export(os, list, smart,SmartStrip);
    

      

  • 相关阅读:
    Java基础——消息队列
    Java基础——缓存
    Java基础——动态代理
    Java基础——克隆
    Java基础——锁
    Java基础——线程池
    Java基础——线程
    Java基础——HashMap
    Java基础——String
    SpringMVC的学习____5.乱码问题的解决_两种方法(两个类)
  • 原文地址:https://www.cnblogs.com/wanghongjie/p/6102464.html
Copyright © 2011-2022 走看看