Java导出Excel和CSV(简单Demo)
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)的更多相关文章
- [转载]Java导出Excel
一.需求介绍 当前B/S模式已成为应用开发的主流,而在开发企业办公系统的过程中,常常有客户这样子要求:把系统数据库中的数据导出到Excel,用户查看报表时直接用Excel打开.或者是:用户已经习惯用E ...
- java导出excel报错:getOutputStream() has already been called for this response
对于java导出excel报错的问题,查了很多都说是在使用完输出流以后调用以下两行代码即可 out.clear(); out = pageContext.pushBody(); 但这也许是页面上输出时 ...
- java导出excel表格
java导出excel表格: 1.导入jar包 <dependency> <groupId>org.apache.poi</groupId> <artifac ...
- java导出excel报表
1.java导出excel报表: package cn.jcenterhome.util; import java.io.OutputStream;import java.util.List;impo ...
- Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类
Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...
- java导出excel模板数据
Java导出excel数据模板,这里直接贴代码开发,流程性的走下去就是步骤: String[] colName=new String[]{"期间","科目代码" ...
- java导出excel工具类
java导出excel须要使用HSSFWorkbook这个类,须要导入poi-3.6-20091214.jar 工具类调用例如以下: package com.qlwb.business.util; i ...
- js原生导出excel和csv
严格意义来说并不是真正的excel文件,只是可以用excel打开查看而已,实际上的格式是逗号分隔文件即csv文件. 这里有几个坑要说一下: 不加Unicode的utf8头部标识excel打开文件会 ...
- Java代码导入导出 Excel 表格最简单的方法
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStrea ...
随机推荐
- Aix项目_shell_rsh_01
rsh(remote shell) 功能说明:远端登入Shell. 语 法:rsh [-dn][-l <用户名称>][主机名称或IP地址][执行指令] 补充说明:rsh提供用户环境,也就是 ...
- 通过mysql写入一句话木马
USE mysql;# MySQL 返回的查询结果为空(即零行). # MySQL 返回的查询结果为空(即零行). CREATE TABLE a( cmd1 text NOT NULL );# MyS ...
- 《Linear Algebra and Its Applications》-chaper3-行列式-克拉默法则
计算线性方程组唯一解的克拉默法则:
- Python中逗号作用的实例分析
逗号在类型转化中的使用 主要是元组的转换 例如: >>> a=11>>> b=(a)>>> b11>>> b=(a,)>& ...
- flash引入
博客页面引入一个小人的动画时钟代码 <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase ...
- winform 猜猜看 分类: WinForm 2014-08-21 14:12 267人阅读 评论(0) 收藏
说明: 1>窗体应用程序. 2>一个窗体(Form1),一个按钮(btnStart),一个文本(labTime) 3>截图: 4>代码如下: using System; usi ...
- (四) PHPCMSV9如何更换模板风格
更换模板风格有两种方式: 1.复制default模板 2.到相关模板网站下载模板,推荐网站:http://www.moke8.com/phpcms/ 一.复制default模板 将phpcms默认的 ...
- C# 该行已经属于还有一个表 的解决方法
产生错误的代码: DataTable dtContract_src = Oper.GetDataTable("select * from T_Contract where ProjectID ...
- mysql 锁 实验
CREATE TABLE `kk` ( `a` ) NOT NULL, `b` ) NOT NULL, `c` ) NOT NULL, PRIMARY KEY (`a`), UNIQUE KEY `b ...
- Objective-C通过联合存储为类增加属性及原理解析
联合存储实现方式及底层原理解析 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory_tjsd/article/details/9347981 转载请注明出处 ...