Java导出Excel和CSV(简单Demo)
2013-11-06 14:48
471 查看
Java导出Excel和CSV的简单实现,分别使用POI和JavaCSV。
JavaBean
View Code
后来看到xwdreamer的一篇文章,使用了Java的泛型和反射将JavaBean的属性依次填充到Excel行中,如能自由指定JavaBean的属性所在列效果更好。
POI的官方快速入门示例:http://poi.apache.org/spreadsheet/quick-guide.html
JavaBean
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); } }
View Code
后来看到xwdreamer的一篇文章,使用了Java的泛型和反射将JavaBean的属性依次填充到Excel行中,如能自由指定JavaBean的属性所在列效果更好。
POI的官方快速入门示例:http://poi.apache.org/spreadsheet/quick-guide.html
相关文章推荐
- Struts2拦截器 —— prepare拦截器
- xsd生成的java对象里的list成员变量没有set函数
- Struts2拦截器
- ubuntu下Eclipse无法启动
- myeclipse 中 代码规范化不起作用
- myeclipse 中 代码规范化不起作用
- java修饰符
- Eclipse代码自动提示(内容辅助content assist)
- java反射详解
- eclipse 关键字高亮显示
- Stripes视图框架实现纯Java代码控制表现层参考文档
- encodeURIComponent编码后java后台的解码
- 解决 struts2 升级后 找不到result的问题
- struts.xml中的结果类型与视图
- Myeclipse 更改deploy location
- Java迷题:等于,还是不等于?
- java开发中如何选择Set、List、Map、数组
- 转:Java IO
- struts.properties配置详解
- eclipse自动生成类方法注释