java程序导出excel表格是空白的没有数据?

看一下是否可以链接上数据库,或者查看一下链接的数据库是否有数据

java从数据库中导出excel poi

建议你使用pageoffice。

java web项目: 一个excel文件以二进制的形式存在数据库中 如何将它导出并

poi即可。

/**

* 读取Excel内容

* @param InputStream

* @return Map 包含单元格数据内容的Map对象

*/

public Map readExcelContent(InputStream is) {

Map content = new HashMap();

String str = "";

try {

fs = new POIFSFileSystem(is);

wb = new HSSFWorkbook(fs);

} catch (IOException e) {

e.printStackTrace();

}

sheet = wb.getSheetAt(0);

// 得到总行数

int rowNum = sheet.getLastRowNum();

row = sheet.getRow(0);

int colNum = row.getPhysicalNumberOfCells();

// 内该从第二行开始,第一行为表头的标题

for (int i = 1; i <= rowNum; i ) {

row = sheet.getRow(i);

int j = 0;

while (j < colNum) {

// 每个单元格的数据内容用"-"分割开,以后需要时用String类的replace()方法还原数据

// 也可以将每个单元格的数据设置到一个javabean的属性中,此时需要新建一个javabean

// str = getStringCellValue(row.getCell((short) j)).trim()

// "-";

str = getCellFormatValue(row.getCell((short) j)).trim() " ";

j ;

}

content.put(i, str);

str = "";

}

return content;

}

java中如何将数据库中的数据导出到excel中(

项目中很多都会将导出到excel,然后对数据进理分析,在之前的项目中,多处用到能,也走了很多弯路,从一开始的tableExcel到现在的poi,从一开始用HSSFWorkbook

再到XSSFWorkbook,一步步优化,废话少说,直接开始.

项目框架

1,后台:spring springmvc mybatis

2,前台: bootstrap jQuery ajax

3,项目管理:maven

说明.excel处理函数需要引入poi的jar包,在pom.xml引入一下代码

[html] view plain copy

org.apache.poi

poi

3.8

commons-codec

commons-codec

org.apache.poi

poi-ooxml

3.8

别的框架大体上也是可以的,只需稍微调整,如有问题,大家可留言讨论

实现的功能说明:将数据库中的人员信息(姓名.年龄,电话)导出到excel

具体代码如下

1,前台html代码

[html] view plain copy

姓名:

性别:

请选择性别

年龄:

导出

前台页面效果图

2,js代码

[javascript] view plain copy

var User = function(){

this.init = function(){

// 用于导出excel

$("#userExport").click(function() {

var url =  '/user/export/';

location.href = url   "?queryJson=" JSON.stringify(user.acquireInquireData());

});

};

//获取查询条件

this.acquireInquireData = function(){

var inquireCondition = {

name:$('#name').val(),//名称

sex: $('#sex').val(),//性别

age: $('#age').val(),//年龄

};

return inquireCondition;

};

}

var user;

$(function(){

user = new User();

user.init();

});

3,domain的user实体类(该实体类如果作为最终导出结果的实体类,则该类的字段必须与需要导出的字段保持一致,且与导出列表的顺序也得保持一致)

[java] view plain copy

/**

* @author  李光光(编码小王子)

* @QQ      826331692

* @date    2016年11月7日 下午2:57:03

* @version 1.0

*/

public class User {

private  String name;

private String sex;

private String age;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public String getAge() {

return age;

}

public void setAge(String age) {

this.age = age;

}

}

4,controller层代码

[java] view plain copy

/**

* @author 李光光(编码小王子)

* @date 2015年12月29日 下午4:04:00

* @qq  826331692

* @version 1.0

* @return

*/

@Controller

@RequestMapping("/user")

public class UserController {

@Autowired

private UserService userService;

/**

* 用于导出excel的查询结果

* @param queryJson

* @return

*/

@RequestMapping("/export")

public void export(HttpServletRequest request, HttpServletResponse response,

@RequestParam(value = "queryJson") String queryJson) {

User user = JSON.parseObject(queryJson, User.class);

List userlList = userService.getUserForExcel(user);

ExportExcel ee= new ExportExcel();

String[] headers = { "序号", "姓名", "性别", "年龄" };

String fileName = "用户信息表";

ee.exportExcel(headers,userlList,fileName,response);

}

}

5,service层代码

[java] view plain copy

public interface UserService {

/**

* 根据查询条件查询出所有的记录,不用分页,用于excel导出功能

* @param userDeviceVo

* @return

*/

public List getUserDeviceForExcel(User user);

}

6,service实现层代码

[java] view plain copy

/**

* @author  李光光(编码小王子)

* @date 2015年12月29日 下午3:43:08

* @Email 826331692@qq.com

* @version 1.0

* @return

*/

@service

public class UserServiceImpl implements UserService {

@Autowired

private UserDao  userDao;

/**

* 根据查询条件查询出所有的记录,不用分页,用于excel导出功能

* @param userDeviceVo

* @return

*/

@Override

public List getUserDeviceForExcel(User user) {

List list = userDao.getUserForExcel(user);

Integer order;

for (int i = 0; i

order = i   1;

list.get(i).setOrder(order.toString());

if (list.get(i).getSex().equals("1")) {

list.get(i).setSex("男");

} else {

list.get(i).setSex("女");

}

}

return list;

}

}

6dao层代码

[java] view plain copy

public interface UserDao {

/**

* 根据查询条件查询出所有的记录,不用分页,用于excel导出功能

* @param userDeviceVo

* @return

*/

List getUserForExcel(User user);

}

需要在配置文件中加载UserDao的信息,否则无法找到UserDao,配置如下:

[html] view plain copy

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

${DB_MSSQL_DRIVER}

${DB_MSSQL_URL}

${DB_MSSQL_USER}

${DB_MSSQL_PW}

${maxActive}

${maxIdle}

${minIdle}

${maxWait}

${timeBetweenEvictionRunsMillis}

${minEvictableIdleTimeMillis}

${testWhileIdle}

${validationQuery}

${removeAbandoned}

${removeAbandonedTimeout}

${DB_MSSQL_CMS_DRIVER}

${DB_MSSQL_CMS_URL}

${DB_MSSQL_CMS_USER}

${DB_MSSQL_CMS_PW}

${maxActive}

${maxIdle}

${minIdle}

${maxWait}

${timeBetweenEvictionRunsMillis}

${minEvictableIdleTimeMillis}

${testWhileIdle}

${validationQuery}

${removeAbandoned}

${removeAbandonedTimeout}

7mybatis代码

[html] view plain copy

select name,sex,age

from juser_table

where  1=1 and

and  name=#{name}

and  sex=#{sex}

and  age=#{age}

8,重头戏来了,将List数据写入到excel的代码如下:

[java] view plain copy

package com.jd.xe.web.service.userDevice;

import java.io.BufferedOutputStream;

import java.lang.reflect.Field;

import java.lang.reflect.Method;

import java.util.Collection;

import java.util.Date;

import java.util.Iterator;

import javax.servlet.http.HttpServletResponse;

import org.apache.poi.xssf.usermodel.XSSFCell;

import org.apache.poi.xssf.usermodel.XSSFRichTextString;

import org.apache.poi.xssf.usermodel.XSSFRow;

import org.apache.poi.xssf.usermodel.XSSFSheet;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import com.jd.xe.web.utils.DateUtil;

/**

* @author  李光光(编码小王子)

* @Email   826331692@qq.com

* @date    2016年7月18日 下午9:03:29

* @version 1.0

*/

public class ExportExcel {

public void exportExcel(String[] headers,Collection dataset, String fileName,HttpServletResponse response) {

// 声明一个工作薄

XSSFWorkbook workbook = new XSSFWorkbook();

// 生成一个表格

XSSFSheet sheet = workbook.createSheet(fileName);

// 设置表格默认列宽度为15个字节

sheet.setDefaultColumnWidth((short) 20);

// 产生表格标题行

XSSFRow row = sheet.createRow(0);

for (short i = 0; i

XSSFCell cell = row.createCell(i);

XSSFRichTextString text = new XSSFRichTextString(headers[i]);

cell.setCellValue(text);

}

try {

// 遍历集合数据,产生数据行

Iterator it = dataset.iterator();

int index = 0;

while (it.hasNext()) {

index ;

row = sheet.createRow(index);

T t = (T) it.next();

// 利用反射,根据javabean属性的先后顺序,动态调用getXxx()方法得到属性值

Field[] fields = t.getClass().getDeclaredFields();

for (short i = 0; i

XSSFCell cell = row.createCell(i);

Field field = fields[i];

String fieldName = field.getName();

String getMethodName = "get"   fieldName.substring(0, 1).toUpperCase()   fieldName.substring(1);

Class tCls = t.getClass();

Method getMethod = tCls.getMethod(getMethodName, new Class[] {});

Object value = getMethod.invoke(t, new Object[] {});

// 判断值的类型后进行强制类型转换

String textValue = null;

// 其它数据类型都当作字符串简单处理

if(value != null

java实现这个无表头空表格,《java程序导出excel表格是空白的没有数据?》 java怎么导入数据库...相关推荐

  1. php导出excel表格例子,PHP导出excel表格示例

    方法一:适合单独导出 $filename='提现列表-' . date('Ymd',time()); header("Content-type: application/vnd.ms-exc ...

  2. java导出表格_java怎么导出excel表格

    import com.spire.xls.ExcelVersion; import com.spire.xls.Workbook; import com.spire.xls.Worksheet; pu ...

  3. java 导入导出excel表格

    java 导入导出excel表格 业务上有需求上传excel表格并读取内容,本文记录一下该方法 表格导入 引入相应的工具包 <dependency><groupId>cn.af ...

  4. java中poi导出Excel表格(前台流文件接收)

    java中poi导出Excel表格,前端以流的方式接收,而非直接生成文件再下载,解决多台服务器部署后,路径地址不统一导致的下载问题. 生成Excel示例图: 2.代码说明 ① 在上次的基础上增加了底部 ...

  5. java中使用jxl导出excel表格的工具类(全网唯一亲测可用,在原来基础上扩展)

    java中后台导出excel的话,有两种方案,一是使用poi(不过由于是windows版本的,存在不兼容,但功能更多,更强大),而是使用jxl(纯java编写,不过兼容,简单一些),可以设置输出的ex ...

  6. java 导出excel教程_Java导出Excel表格

    Java导出Excel表格 导出Excel表格需要一个poi-3.9.jar的包,该包在网上可以找到. 第一步,创建Excel对象. HSSFWorkbook workbook = new HSSFW ...

  7. java代码实现导出Excel表格、工具ssm框架、maven、idea

    第一步.导入依赖 <!--生成excel文件--><dependency><groupId>org.apache.poi</groupId><ar ...

  8. java 浏览器 excel导出excel_使用Java导出Excel表格并由浏览器直接下载——基于POI框架...

    非异步方法 /** * 使用Java导出Excel表格并由浏览器直接下载--基于POI框架 * * @param response * @return * @throws IllegalAccessE ...

  9. java poi导出Excel表格超大数据量解决方案

    Java实现导出excel表格功能,大部分都会使用apache poi,apache poi API 地址 POI之前的版本不支持大数据量处理,如果数据过多则经常报OOM错误,有时候调整JVM大小效果 ...

最新文章

  1. 【ACM】杭电OJ 2149
  2. HDOJ 1233 还是畅通工程
  3. netlink怎么读_ovs源码阅读--netlink使用
  4. 如何覆盖 SAP Spartacus 默认的 css style
  5. SQL Server 索引重建手册
  6. redis学习笔记——应用场景
  7. 获取泛型T的ClassT clazz
  8. 【预留】Apache Doris 0.12 官方中文文档学习
  9. MySQL DBA亲授MySQL InnoDB事务ACID实现原理
  10. python每日经典算法题5(基础题)+1(中难题)
  11. 【每日算法Day 71】面试官想考我这道位运算题,结果我给出了三种解法
  12. 【html和css入门】实现简单的页首导航
  13. ObjectiveC开发教程--如何判断字符串是否为空的方法
  14. php导出word 模板,Laravel+phpword导出word
  15. Win11如何查看自己电脑的显卡信息?Win11查看显卡信息的方法
  16. element-ui 执行 npm run build:theme 报错 Replace Autoprefixer browsers option to Browserslist config....
  17. 阅读笔记--计算机网络 自顶向下方法
  18. 2017年下半年阅读书单
  19. 里氏代换原则——及之我见
  20. mcnpf5输出结果_MCNP4c3说明

热门文章

  1. c语言计算极坐标方程,极坐标编程,polar coordination programming,音标,读音,翻译,英文例句,英语词典...
  2. 野生码农狂奔中的2014年度年终总结
  3. 假期项目:智能家居之环境监测系统day1(Java加数据库新手项目)
  4. python print函数详细用法
  5. 模拟软件-OLED及太阳能电池的模拟软件(漂流扩散模块)-[Setfos]
  6. php decrypt,GitHub - amhoho/php-decrypt: PHP Decrypt是一个跨平台用来解密PHP源码的扩展
  7. CSDN高校计算机社区引导指南
  8. 五险合一系统服务器,天水五险合一社保系统上线 实现“一卡通”服务
  9. 2019级C语言大作业 - 三国杀
  10. php写入日志到文件