背景:

上一篇写到利用jtds连接数据库获取对应的数据,本篇写怎样用poi将数据到处到excel中,此程序为Application

正文:

第三方poi jar包:poi驱动包下载
代码片段:
/**
* 将数据导出到excel中
* @param data 将要被导入到excel中的数据
* @throws IOException
*/
public void crateTempFile(ArrayList<LinkedHashMap<String, String>> data) throws IOException {
//建立一个excel工作簿
HSSFWorkbook wb = new HSSFWorkbook();
//建立一个sheet
HSSFSheet sheet = wb.createSheet("test");
//建立一个单元格样式
HSSFCellStyle commonTitileStyle = wb.createCellStyle();
//建立一个字体样式
HSSFFont font=wb.createFont();
//设置字体颜色
font.setColor(HSSFColor.RED.index);//HSSFColor.VIOLET.index //字体颜色
//设置字体的大小
font.setFontHeightInPoints((short)12);
//字体增粗
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
//将字体样式放入单元格样式中
commonTitileStyle.setFont(font);
//建立一行
HSSFRow titleRow = sheet.createRow(0);
Map<String, String> titleMap = data.get(0);
Set<String> keySet = titleMap.keySet();
Iterator<String> it = keySet.iterator();
//sheet中行索引值
int indexOfRow = 0;
//建立第一行第一个单元格
HSSFCell titileCell = titleRow.createCell(indexOfRow);
String titilKey = "測试測试(6072)";
//设置单元格宽度
sheet.setColumnWidth(indexOfRow, 20 * 256);
//给单元格赋值
titileCell.setCellValue(titilKey);
//设置单元格样式
titileCell.setCellStyle(commonTitileStyle);
indexOfRow = 1;
//设置sheet第二行
HSSFRow dataRow = sheet.createRow(indexOfRow);
while (it.hasNext()) {
//遍历建立第二行单元格格式
HSSFCell cell1 = dataRow.createCell(indexOfRow-1);
String key1 = it.next();
//将数据库表中的字段名改为改动成excel中的须要的标题名称
key1 = dbColumnNameToExcelColumnName(key1);
sheet.setColumnWidth(indexOfRow, 20 * 256);
cell1.setCellValue(key1);
indexOfRow++;
}
//设置第三行
indexOfRow = 2;
for (Map<String, String> temp : data) {
HSSFRow titleRow1 = sheet.createRow(indexOfRow);
Set<String> set = temp.keySet();
Iterator<String> it1 = set.iterator();
int indexOfColumn = 0;
while (it1.hasNext()) {
String key = it1.next();
if (key.equals("anchor_name") || key.equals("send_gift_user_name") || key.equals("add_date")) {
String value = temp.get(key);
if (key.equals("add_date")) {
Date d = new Date(Long.valueOf(value));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
value = sdf.format(d);
}
HSSFCell cell = titleRow1.createCell(indexOfColumn);
cell.setCellValue(value);
} else {
long value = Long.valueOf(temp.get(key));
HSSFCell cell = titleRow1.createCell(indexOfColumn);
cell.setCellValue(value);
}
indexOfColumn++;
}
indexOfRow++;
}
FileOutputStream fos = new FileOutputStream(new File("D://test//" + new Random().nextInt(100) + ".xls"));
wb.write(fos);
fos.close();
}
效果:
在D:\test中建立一个excel文件,当中的样式为:

体会:

主要利用poi将数据导出excel。详细步骤是:
1.先建立一个excel工作簿,在建立一个sheet,
2.在建立的sheet中设置每一行每个列的值。
详细的样式问题,能够查看poi提供的API文档


java利用poi导出数据到excel的更多相关文章

  1. 使用poi导出数据到excel

    一.首先是导入poi所需要的jar包,我是用的是maven,添加jar包依赖 <dependency> <groupId>org.apache.poi</groupId& ...

  2. spring boot 使用POI导出数据到Excel表格

    在spring boot 的项目经常碰到将数据导出到Excel表格的需求,而POI技术则对于java操作Excel表格提供了API,POI中对于多种类型的文档都提供了操作的接口,但是其对于Excel表 ...

  3. springboot2.1.8使用poi导出数据生成excel(.xlsx)文件

    前言:在实际开发中经常需要将数据库的数据导出成excel文件,poi方式则是其中一种较为常用的导出框架.简单读取excel文件在之前的一篇有说明 本项目实现需求:user发出一个导出student信息 ...

  4. 利用OLEDB导出数据到Excel

    原帖地址:http://blog.csdn.net/cpp2017/archive/2008/04/02/2245396.aspx 利用OELDB数据访问对象操作Excel文件,达到将数据导出到Exc ...

  5. JXL 读取 Excel java中jxl导出数据到excel的例子 上传文件

    2010-10-14 19:17:06 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info 信息: Entferne Dat ...

  6. Java利用POI导入导出Excel中的数据

         首先谈一下今天发生的一件开心的事,本着一颗android的心我被分配到了PB组,身在曹营心在汉啊!好吧,今天要记录和分享的是Java利用POI导入导出Excel中的数据.下面POI包的下载地 ...

  7. java操作Excel之POI(4)利用POI实现数据的批量导出

    后台导出方法: /** * 后台导出方法 * 利用POI实现数据的批量导出 */ public String export() throws Exception{ Connection con = n ...

  8. Java使用POI实现数据导出excel报表

    Java使用POI实现数据导出excel报表 在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅 ...

  9. Java导出数据为EXCEL的两种方式JXL和POI

    JXL和POI导出数据方式的比较 POI支持excel2003和2007,而jxl只支持excel2003. 下面为测试代码: public class TestCondition { /** * 生 ...

随机推荐

  1. Sonar——代码质量管理平台

    Sonar——代码质量管理平台 一.基本认识 Sonar (SonarQube)是一个开源平台,用于管理源代码的质量. Sonar 不只是一个质量数据报告工具,更是代码质量管理平台.通过插件机制,So ...

  2. WebStorm的compass配置

    在webstorm中配置compass WebStorm是功能强大的前端开发专用IDE,拥有即时编辑(chrome).自动完成.debugger.Emmet.HTML5 支持.JSLint.Less. ...

  3. iOS如何兼容的应用程序32位系统和64Bit系统

    苹果发布iPhone5S时刻,64应用程序位去了眼前.当时我看到苹果公布的官方数据iOS7.x的SDK支撑64位应用程序.而内置的应用程序已经64位置. 我记得自己刚刚接触电脑时还有16位的系统,指针 ...

  4. RDIFramework.NET ━ .NET高速信息系统开发框架钜献 V2.9 版本震撼发布

    RDIFramework.NET ━ .NET高速信息化系统开发框架钜献 V2.9 版本号震撼公布  全新体验.全新感觉.2015钜献! 继上个版本号"RDIFramework.NET V2 ...

  5. SQL开发中容易忽视的一些小地方(二)

    原文:SQL开发中容易忽视的一些小地方(二) 目的:继上一篇:SQL开发中容易忽视的一些小地方(一) 总结SQL中的null用法后,本文我将说说表联接查询. 为了说明问题,我创建了两个表,分别是学生信 ...

  6. 【C语言】reverse_string(char * string)(递归)

    递归reverse_string(char * string)性能. 逆转 原始字符串 更改 相反,打印出的. /* 编写一个函数reverse_string(char * string)(递归实现) ...

  7. Android Dalvikvm 内存管理理解

    网上非常多文件介绍了 jvm 内存管理的理论,但在 Dalvikvm 中,到底是怎样实现的. 这几天猛看了 Dalvikvm 的源码,说一下我的理解: 在大层面上讲跟理论一样,jvm 把内存分成了一些 ...

  8. 写作Openwrt固件

    启动tftp软体.并设置文件夹的固件文件(Current Dircctory)和serverIP(Service interface).server指PC机.图.:                   ...

  9. Chromium Graphics Update in 2014(滑动)

    原创文章,转载请注明为链接原始来源对于http://blog.csdn.net/hongbomin/article/details/40897433. 摘要:Chromium图形栈在2014年有多项改 ...

  10. 数字使用相应的加密策略传递一个字符串后Java实现代码

    公司采用公用电话传递数据,数据小于8整数位,为了确保安全,     在转移的过程中需要加密,加密规则如下面的:         第一个数据下降,附图然后各加5,和除以10的余数取代该数字,       ...