Java导出Excel和CSV的简单实现,分别使用POI和JavaCSV。

JavaBean

 public class ReportInfo {

     int id;
String date;
int num;
int percent; public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public int getPercent() {
return percent;
}
public void setPercent(int percent) {
this.percent = percent;
} }

工具类的简单实现

public class ExportUtil {

    public static void main(String[] args) throws FileNotFoundException, IOException{

        List<ReportInfo> list = new ArrayList<ReportInfo>();
createData(list);
exportCSV(list, "/tmp/report.csv");
exportExcel(list, "/tmp/report.xls");
} public static void exportCSV(List<ReportInfo> list, String filePath) throws IOException{
File file = new File(filePath);
if(file.exists())
file.delete();
CsvWriter wr = new CsvWriter(filePath, ',', Charset.forName("UTF-8"));
String[] contents = {"No", "date", "num", "percent"};
wr.writeRecord(contents);
ReportInfo info = new ReportInfo();
for(int i = 0; i < list.size(); i++){
info = list.get(i);
contents[0] = String.valueOf(info.getId());
contents[1] = info.getDate();
contents[2] = String.valueOf(info.getNum());
contents[3] = info.getPercent() + "%";
wr.writeRecord(contents);
}
wr.close();
} public static void exportExcel(List<ReportInfo> list, String filePath) throws IOException{ File file = new File(filePath);//"/tmp/tmpfiles/workbook.xls"
if(file.exists())
file.delete();
FileOutputStream fileOut = new FileOutputStream(filePath);//创建excel表格//"/tmp/tmpfiles/workbook.xls"
Workbook wb = new HSSFWorkbook();//获取workbook
//FileOutputStream fileOut = new FileOutputStream("workbook.xls");
HSSFSheet sheet = (HSSFSheet) wb.createSheet("report");// 生成一个表格 sheet.setColumnWidth(1, 4000); HSSFRow row = sheet.createRow((short)0);//创建行并插入表头
row.createCell(0).setCellValue("No");
row.createCell(1).setCellValue("date");
row.createCell(2).setCellValue("num");
row.createCell(3).setCellValue("percent"); ReportInfo info = new ReportInfo();
for(int i = 1; i <= list.size(); i++){//循环插入数据
info = list.get(i-1);
row = sheet.createRow(i);
row.createCell(0).setCellValue(info.getId());
row.createCell(1).setCellValue(info.getDate());
row.createCell(2).setCellValue(info.getNum());
row.createCell(3).setCellValue(info.getPercent()+"%");
} wb.write(fileOut);
fileOut.close();
} public static void createData(List<ReportInfo> list){
ReportInfo tp = new ReportInfo();
tp.setId(1);
tp.setNum(2);
tp.setPercent(50);
tp.setDate("2013-08-20");
list.add(tp);
} }

后来看到xwdreamer一篇文章,使用了Java的泛型和反射将JavaBean的属性依次填充到Excel行中,如能自由指定JavaBean的属性所在列效果更好。

POI的官方快速入门示例:http://poi.apache.org/spreadsheet/quick-guide.html

Java导出Excel和CSV(简单Demo)的更多相关文章

  1. [转载]Java导出Excel

    一.需求介绍 当前B/S模式已成为应用开发的主流,而在开发企业办公系统的过程中,常常有客户这样子要求:把系统数据库中的数据导出到Excel,用户查看报表时直接用Excel打开.或者是:用户已经习惯用E ...

  2. java导出excel报错:getOutputStream() has already been called for this response

    对于java导出excel报错的问题,查了很多都说是在使用完输出流以后调用以下两行代码即可 out.clear(); out = pageContext.pushBody(); 但这也许是页面上输出时 ...

  3. java导出excel表格

    java导出excel表格: 1.导入jar包 <dependency> <groupId>org.apache.poi</groupId> <artifac ...

  4. java导出excel报表

    1.java导出excel报表: package cn.jcenterhome.util; import java.io.OutputStream;import java.util.List;impo ...

  5. Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类

    Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...

  6. java导出excel模板数据

    Java导出excel数据模板,这里直接贴代码开发,流程性的走下去就是步骤: String[] colName=new String[]{"期间","科目代码" ...

  7. java导出excel工具类

    java导出excel须要使用HSSFWorkbook这个类,须要导入poi-3.6-20091214.jar 工具类调用例如以下: package com.qlwb.business.util; i ...

  8. js原生导出excel和csv

    ​ 严格意义来说并不是真正的excel文件,只是可以用excel打开查看而已,实际上的格式是逗号分隔文件即csv文件. 这里有几个坑要说一下: 不加Unicode的utf8头部标识excel打开文件会 ...

  9. Java代码导入导出 Excel 表格最简单的方法

    import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStrea ...

随机推荐

  1. bzoj 1013 [JSOI2008]球形空间产生器sphere(高斯消元)

    1013: [JSOI2008]球形空间产生器sphere Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 3584  Solved: 1863[Subm ...

  2. rfc的资料

    所有rfc的集结地:    http://www.rfc-editor.org/rfc rtp的rfc: http://en.wikipedia.org/wiki/RTP_audio_video_pr ...

  3. 在LINUX终端和VIM下复制粘贴

    http://www.tinylab.org/linux-terminal-and-paste-copy-under-vim/ 在GUI界面下,我们可以很自由的复制粘贴.但是在字符界面下,我们不得不用 ...

  4. 创建oracle 密码文件

    orapwd file='$ORACLE_HOME/dbs/oratest' password=oracle entries=5 force=y; 说明:●FILE参数指定口令文件存放的全路径及文件名 ...

  5. C# WinForm 透明控件 PictureBox透明 分类: WinForm 2014-07-30 13:27 591人阅读 评论(0) 收藏

    1.要实现C# WinForm中的控件与背景的透明,可以通过设置控件的BackColor属性为Transparent,同时设置其父控件.因为在C#中,控件的透明指对父窗体透明.如果不设置Parent属 ...

  6. java中main函数解析(转载)

    从写java至今,写的最多的可能就是主函数 public static void main(String[] args) {} 但是以前一直都没有问自己,为什么要这么写,因为在c语言中就没有这样子的要 ...

  7. javascript之文档碎片,文档碎片在理论上可以提高DOM操作的执行效率

    刚来到这里,趁着还没有忘记,来记录一下,昨晚学习的一个知识点——JavaScript中的文档碎片. 一.对文档碎片的基本认识 文档碎片可以提高DOM操作性能(理论上,注意!!理论上的) 文档碎片原理 ...

  8. QDomDocument类

    QDomDocument类代表了一个XML文件 QDomDocument类代表整个的XML文件.概念上讲:它是文档树的根节点,并提供了文档数据的基本访问方法. 由于元素.文本节点.注释.指令执行等等不 ...

  9. 轻量级的原型设计工具-Axure RP

    1. 软件下载地址: http://www.downxia.com/downinfo/25742.html 这个版本不需要注册码,不需要安装,存绿色版. 2. 基本介绍教程: http://wenku ...

  10. 亲测linux6.4 安装

    1.bios下点击 u盘 启动进入(两个Flash1.0,都试试) 2.最关键的部分是,不如windows启动 没有linux界面. others(只是把这个修改一下名字为windows7) cent ...