2 smal1 sun Smal1_Sun 于 2016.03.29 19:44 提问

使用Java导出excel文档,为何数据库中int类型的导出不成功?

导出工具类

 package com.lovefly.util;

import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.util.List;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

import com.lovefly.service.api.excel.Excelable;

public class ExcelUtil<T extends Excelable> {
    private WritableWorkbook book ;
    private WritableSheet sheet;
    private int rowIndex = 0;
    List<String> attrs;
    List<T> poList;
    Class<T> clas;

    public ExcelUtil(OutputStream out,String name,List<String> attrs,List<T> poList,Class<T> c) throws IOException {
        book = Workbook.createWorkbook(out);
        sheet = book.createSheet(name, 0);
        this.attrs = attrs;
        this.poList = poList;
        clas = c;
    }

    private void writeBody() throws Exception {
        Label label = null;
        for(int i=0;i<poList.size();i++){
            for(int j=0;j<attrs.size();j++){
                Field field = clas.getDeclaredField(attrs.get(j));
                field.setAccessible(true);
                label = new Label(j,rowIndex,field.get(poList.get(i)).toString());
                sheet.addCell(label);
            }
            rowIndex++;
        }
    }

    private void writeTitle() throws Exception{
        Label label = null;
        for(int i=0;i<attrs.size();i++){
            label = new Label(i,rowIndex,clas.newInstance().getAttrTitleMapping().get(attrs.get(i)));
            sheet.addCell(label);
        }
        rowIndex++;
    }

    public void writeClose(){
        try {
            writeTitle();
            writeBody();
            book.write();
            book.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

1个回答

yskxz1988
yskxz1988   2016.03.30 17:23

这个工具类,跟你是什么类型是没关系的
for(int j=0;j<attrs.size();j++){
Field field = clas.getDeclaredField(attrs.get(j));
field.setAccessible(true);
label = new Label(j,rowIndex,field.get(poList.get(i)).toString());
sheet.addCell(label);
}
Field field = clas.getDeclaredField(attrs.get(j)); 根据你传入的名称获得这个class的成员变量
比如我们传入了student 类 有id,age,name 三个属性

你的attrs 集合里面应该存入了attrs[0]="id",attrs[1]="age",attrs[2]="name"
假如j=0:现在的field=student.id;获取到了student.id成员变量;
field.get(poList.get(i))---获取class的成员变量的值
你传入的是student 类的集合,所以你可以获取到第一个student 的id的值
如果是int类型的值你做.tostring(),肯定不行的啊,int 是没有tostring()方法的

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Java Swing 使用jxl进行Excel的导入与导出
最近在做Java Swing的小项目练手,其中关于数据的采集和统计离不开Excel,目前所了解的可以通过jxl和poi两种jar包完成操作,目前只研究了jxl的常用用法,poi将会补充。 通过老师的代码以及网上各路大神的代码,加之使用FileChooser来进行确定选择文件和导出文件的路径,综合成了OutExcel.java和ImportExcel.java两个自己的常用工具类,特此总结! j
使用POI从数据库动态获取并导出excel文档
public String exportXls() throws IOException{ //查询所有的分区数据 List&amp;lt;Entity&amp;gt; list = xlsService.findAll(); HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); //1.创建sheet HSSFSheet sheet = hssfWorkb...
关于Java Web 使用 POI 将 数据库表 导出 Excel 的完整实例
//导出Excel  public void exportExcel() throws InterruptedException, IOException{   HSSFWorkbook hwb = new HSSFWorkbook();//第一步,创建一个workbook(一个excel文件)   HSSFSheet hs = hwb.createSheet("图书详情信息");//第二步
Navicat工具导出Mysql数据表结构到Excel文件中
前言     项目中数据库设计已经完成,现在到了代码实现的阶段,数据库中没有数据,测试看不出效果,领导要求添点数据,单个表中字段比较多,我就选择了工具导出表结构,再导入数据到表中,下面是导出的操作过程。 正文  1、找到要导出的表,右击-导出向导                 2、选择导出格式                 3、下一步,选择要到导出的表            
java开发导出Excel和Word文档
前言:刚满18的小编在电脑网页上看到好看但19禁的电影,然后想下载到手机上看,你会怎么做? 1、这是一个后台,里面已经增加了几部电影。。。 2、这是导出Excel,这是方便以后查询用的,生成Excel有时间格式 3、也可以导出成Word文档,如果不担心中毒的话,可以扫一扫图中的二维码 4、不是打开微信扫一扫 5、我是用流量迅雷扫一扫,几M就没了,就是这么任性 想获取源代码
基于Java的简单数据库设计生成工具(生成Excel文档)
本工具用于将数据库表结构、主键信息和索引信息导出生成Excel文件。 主要采用jdbc连接数据库(Oracle),采用Poi生成Excel文档(2007)
很好用的数据库数据字典【可导出为word , excel文件】
<?php /** * 生成mysql数据字典 */ header("Content-type:text/html;charset=utf-8"); // 配置数据库 $database = array(); $database['DB_HOST'] = 'localhost';//数据库服务器地址 $database['DB_NAME'] = 'project_my';//数据库名 $data
java读取数据库并导出到Excel
import java.io.File; import jxl.*; import jxl.write.*;import jxl.write.biff.RowsExceededException;import java.sql.*;import java.util.*;public class DBtoExcel { /** * 导出Excel表
java +Spring MVC +MyBatis 实现Excle 导出
第一步: package com.wlsq.kso.util; import org.apache.poi.hssf.usermodel.*; import java.io.FileOutputStream; import java.io.IOException; import java.util.Calendar; import java.util.List; import
mysql笔记七——Java实现excel表的读写(导出mysql数据库的所有表到excel表)
java对cxcel表的读些主要是通过Apache POI的支持。 Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。 Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java A