一个简单的文档导出公共处理类

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);

  

时间: 2024-10-05 17:26:40

一个简单的文档导出公共处理类的相关文章

试试一个简单的文档扫描器(机器视觉)

用途:可以用在智能手机上的名片扫描归档或文档扫描保存. 设想:我们通过手机的摄像头拍到一张图片如下 我们的目的是自动获取小票的位置,然后自动整理成正视效果然后整理存起来,需要的效果可能如下 为了全部自动化于是我们有下边一些可能实现问题的想法和步骤: 1.首先读入图片灰度化. 2.为了寻找小票的位置我们可能想从边缘这块出发去寻找小票,为了避免噪音的影响,我们对图片进行高斯模糊然后再进行canny算查找边缘 可以看出,其实边缘检测效果不太好,具体教通用的参数自己可以去调,这里只做一个示例,当然边缘效

[.NET] 打造一个很简单的文档转换器 - 使用组件 Spire.Office

打造一个很简单的文档转换器 - 使用组件 Spire.Office 目录 Spire.Office 介绍 库引用 界面预览 代码片段 Spire.Office 介绍 关于 Spire.Office,它是一个专门为开发人员创建,读取,写入设计的库,转换和从打印 word 文档文件.作为一个独立的 .NET组件,它不需要在机器上安装微软的 Word 等办公软件.然而,它可以将微软的“文档创建功能”集成到任何开发人员的网络应用程序中.它是一个可靠的 MS Word 的API,可以执行许多Word文档处

word 文档导出 (freemaker+jacob)--java开发

工作中终于遇到了 需要导出word文旦的需求了.由于以前没有操作过,所以就先百度下了,基本上是:博客园,简书,CDSN,这几大机构的相关帖子比较多,然后花了2周时间 才初步弄懂.  学习顺序: 第一阶段 1,.首先 是 先了解 java 通过什么方式 来操作word的导出工作.就有了下面这个帖子了: java 操作 word 的方法 :https://www.cnblogs.com/lcngu/p/5247179.html .新手可以先看看了解下. 2. 根据需求:操作word很复杂: 1.有图

解析简单xml文档

一.解析简单的xml文档 使用xml.etree.ElementTree 下的parse() xmlName.xml的文档的内容如下: <?xml version="1.0"?> <data> <country name="zhongguo"> <rank updated="yes">2</rank> <year >2017</year> <gdppc>

分享一个Linux管理文档多租户的例子

例题 同一群组microsoft下的两个账号justmine001和justmine002需要共同拥有目录/microsoft/eshop的开发权,以便进行协同工作,但是其他人不允许进入和查阅该目录. 从例题可以分析出: 同一群组下的账户需要共同拥有目录的使用权,且可以编辑里面的任何文件. 其他账户不拥有该目录的任何权限. 需要使用root账户,创建账户.群组,设置目录权限,然后搭建开发环境. 创建账户相关信息 groupadd microsoft ; 新增群组 useradd -G micro

Photoshop脚本 &gt; 打开一个存在的文档

源自:http://coolketang.com/tutorials/menu2lesson3.php 本节将演示如何使用脚本,打开一个图片.首先创建一个空白的脚本文档,并保存在硬盘上某个位置. 首先创建一个空白的脚本文档,并保存在硬盘上某个位置. 接着输入脚本代码: //定义一个变量[sampleDoc],用来表示硬盘上的一个图片文档. var sampleDoc = File("E:\Horse.jpg"); //定义一个变量[message],用来表示一个字符串. var mes

【转】刚发现一个linux在线文档库。很好很强大。

原文网址:http://blog.csdn.net/longxibendi/article/details/6048231 1.网址: http://www.mjmwired.net 2.比如查看这个 proc.txt ,就在这里能找到. http://www.mjmwired.net/kernel/Documentation/filesystems/proc.txt 内核参数解释全在这里了.不过,也可以下载内核完源代码,从/usr/src/linux/Documentation/proc.tx

简单的文档转码转换工具包

闲来无事,把原来做过的一个转码服务修改了一些,打包成一个jar包,可以用来将doc.excel等等文档转换成pdf,然后转换成可以在线预览的swf文件.支持图片转换,但图片转换有些问题,还未来得及进行下一步深入. 代码地址:下载地址 所需安装软件:下载地址 以下是一些注意事项: 1.依赖与jdk1.7版本 2.安装open office之后需要启动服务:soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -n

使用Swagger生成简单接口文档

使用swagger通过简单的配置可以生成简单的接口文档: 依赖包: // Swagger2 compile 'io.springfox:springfox-swagger2:2.8.0' compile 'io.springfox:springfox-swagger-ui:2.8.0' 启动类添加配置: import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.