java写入excel文件

java写入excel文件poi,支持xlsx与xls,没有文件自动创建

  1. package com.utils;
  2.  
  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.io.OutputStream;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9.  
  10. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  11. import org.apache.poi.hssf.util.HSSFColor;
  12. import org.apache.poi.ss.usermodel.Cell;
  13. import org.apache.poi.ss.usermodel.CellStyle;
  14. import org.apache.poi.ss.usermodel.Font;
  15. import org.apache.poi.ss.usermodel.Row;
  16. import org.apache.poi.ss.usermodel.Sheet;
  17. import org.apache.poi.ss.usermodel.Workbook;
  18. import org.apache.poi.ss.util.CellRangeAddress;
  19. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  20.  
  21. import com.exception.SimpleException;
  22.  
  23. /**
  24. * 从excel读取数据/往excel中写入 excel有表头,表头每列的内容对应实体类的属性
  25. *
  26. * @author nagsh
  27. *
  28. */
  29. public class ExcelManage {
  30.  
  31. public static void main(String[] args) throws IOException {
  32. String path = "E:/";
  33. String fileName = "被保险人员清单(新增)04";
  34. String fileType = "xlsx";
  35. List<InsuraceExcelBean> list = new ArrayList<>();
  36. for(int i=0; i<6; i++){
  37. InsuraceExcelBean bean = new InsuraceExcelBean();
  38. bean.setInsuraceUser("test"+i);
  39. bean.setBankCardId("4444444444"+i+","+"55544444444444"+i+","+"999999999999999"+i);
  40. bean.setIdCard("666666"+i);
  41. bean.setBuyTime("2016-05-06");
  42. bean.setInsEndTime("2016-05-07");
  43. bean.setInsStartTime("2017-05-06");
  44. bean.setMoney("20,000");
  45. bean.setType("储蓄卡");
  46.  
  47. list.add(bean);
  48. }
  49. String title[] = {"被保险人姓名","身份证号","账户类型","银行卡号","保险金额(元)","购买时间","保单生效时间","保单失效时间"};
  50. // createExcel("E:/被保险人员清单(新增).xlsx","sheet1",fileType,title);
  51.  
  52. writer(path, fileName, fileType,list,title);
  53. }
  54.  
  55. @SuppressWarnings("resource")
  56. public static void writer(String path, String fileName,String fileType,List<InsuraceExcelBean> list,String titleRow[]) throws IOException {
  57. Workbook wb = null;
  58. String excelPath = path+File.separator+fileName+"."+fileType;
  59. File file = new File(excelPath);
  60. Sheet sheet =null;
  61. //创建工作文档对象
  62. if (!file.exists()) {
  63. if (fileType.equals("xls")) {
  64. wb = new HSSFWorkbook();
  65.  
  66. } else if(fileType.equals("xlsx")) {
  67.  
  68. wb = new XSSFWorkbook();
  69. } else {
  70. throw new SimpleException("文件格式不正确");
  71. }
  72. //创建sheet对象
  73. sheet = (Sheet) wb.createSheet("sheet1");
  74. OutputStream outputStream = new FileOutputStream(excelPath);
  75. wb.write(outputStream);
  76. outputStream.flush();
  77. outputStream.close();
  78.  
  79. } else {
  80. if (fileType.equals("xls")) {
  81. wb = new HSSFWorkbook();
  82.  
  83. } else if(fileType.equals("xlsx")) {
  84. wb = new XSSFWorkbook();
  85.  
  86. } else {
  87. throw new SimpleException("文件格式不正确");
  88. }
  89. }
  90. //创建sheet对象
  91. if (sheet==null) {
  92. sheet = (Sheet) wb.createSheet("sheet1");
  93. }
  94.  
  95. //添加表头
  96. Row row = sheet.createRow(0);
  97. Cell cell = row.createCell(0);
  98. row.setHeight((short) 540);
  99. cell.setCellValue("被保险人员清单"); //创建第一行
  100.  
  101. CellStyle style = wb.createCellStyle(); // 样式对象
  102. // 设置单元格的背景颜色为淡蓝色
  103. style.setFillForegroundColor(HSSFColor.PALE_BLUE.index);
  104.  
  105. style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);// 垂直
  106. style.setAlignment(CellStyle.ALIGN_CENTER);// 水平
  107. style.setWrapText(true);// 指定当单元格内容显示不下时自动换行
  108.  
  109. cell.setCellStyle(style); // 样式,居中
  110.  
  111. Font font = wb.createFont();
  112. font.setBoldweight(Font.BOLDWEIGHT_BOLD);
  113. font.setFontName("宋体");
  114. font.setFontHeight((short) 280);
  115. style.setFont(font);
  116. // 单元格合并
  117. // 四个参数分别是:起始行,起始列,结束行,结束列
  118. sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 7));
  119. sheet.autoSizeColumn(5200);
  120.  
  121. row = sheet.createRow(1); //创建第二行
  122. for(int i = 0;i < titleRow.length;i++){
  123. cell = row.createCell(i);
  124. cell.setCellValue(titleRow[i]);
  125. cell.setCellStyle(style); // 样式,居中
  126. sheet.setColumnWidth(i, 20 * 256);
  127. }
  128. row.setHeight((short) 540);
  129.  
  130. //循环写入行数据
  131. for (int i = 0; i < list.size(); i++) {
  132. row = (Row) sheet.createRow(i+2);
  133. row.setHeight((short) 500);
  134. row.createCell(0).setCellValue(( list.get(i)).getInsuraceUser());
  135. row.createCell(1).setCellValue(( list.get(i)).getIdCard());
  136. row.createCell(2).setCellValue(( list.get(i)).getType());
  137. row.createCell(3).setCellValue(( list.get(i)).getBankCardId());
  138. row.createCell(4).setCellValue(( list.get(i)).getMoney());
  139. row.createCell(5).setCellValue(( list.get(i)).getBuyTime());
  140. row.createCell(6).setCellValue(( list.get(i)).getInsStartTime());
  141. row.createCell(7).setCellValue(( list.get(i)).getInsEndTime());
  142. }
  143.  
  144. //创建文件流
  145. OutputStream stream = new FileOutputStream(excelPath);
  146. //写入数据
  147. wb.write(stream);
  148. //关闭文件流
  149. stream.close();
  150. }
  151.  
  152. }

可以直接测试通过

poi处理,要jar的可以去下载也可以留言传送过去poi-3.12.jar,poi-ooxml-3.12.jar,poi-ooxml-schemas-3.12.jar

下载地址 http://i.cnblogs.com/Files.aspx  (poi.zip包)

网盘下载jar包:

https://pan.baidu.com/s/18XXedGT0KToE4Tpihf4Quw 提取码:mers

偶遇晨光

2016-05-26

java写入excel文件poi的更多相关文章

  1. C++读写EXCEL文件OLE,java读写excel文件POI 对比

    C++读写EXCEL文件方式比较 有些朋友问代码的问题,将OLE读写的代码分享在这个地方,大家请自己看.http://www.cnblogs.com/destim/p/5476915.html C++ ...

  2. java读写excel文件( POI解析Excel)

    package com.zhx.base.utils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi ...

  3. 使用java写入excel文件

    要操作excle文件,首先要下载jxl.jar文件,我用的版本是2.6.下载地址:http://www.andykhan.com/jexcelapi/download.html. Java Excel ...

  4. 从网络上获取图片,并写入excel文件

    package com.weChat.utils; import com.manage.utils.DateUtil;import com.manage.utils.MD5Util;import or ...

  5. 一脸懵逼学习Java操作Excel之POI(Apache POI)

    Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 1:下面简单的程序来创建一个空白Microsoft ...

  6. JXL包大解析;Java程序生成excel文件和解析excel文件内容

    最近需求变化,需要把excel导入 我以前没有做过,所以我查了一些资料 和参考别人的代码 以下是多种方式: import java.io.File; import java.io.FileInputS ...

  7. Java读取Excel文件的几种方法

    Java读取 Excel 文件的常用开源免费方法有以下几种: 1. JDBC-ODBC Excel Driver 2. jxl.jar 3. jcom.jar 4. poi.jar 简单介绍: 百度文 ...

  8. 利用java读写Excel文件

    一.读取Excel文件内容 java 代码 public static String readExcel(File file){ StringBuffer sb = new StringBuffer( ...

  9. java读取excel文件的代码

    如下内容段是关于java读取excel文件的内容,应该能对各朋友有所用途. package com.zsmj.utilit; import java.io.FileInputStream;import ...

随机推荐

  1. 转:StrictMode使用

    最新的Android平台中(Android 2.3起),新增加了一个新的类,叫StrictMode(android.os.StrictMode).这个类可以用来帮助开发者改进他们编写的应用,并且提供了 ...

  2. 论SCRM系统对传统行业的冲击

    SCRM(Social Customer Relationship Management)顾名思义是社会型客户关系管理系统,这在当前的电子商务领域是一个创新的概念,由于社交媒体(Social Medi ...

  3. HTML学习-日常问题-1

    最近入了Html的坑 所以开始了学习前端的漫长道路 所以打算将日常遇到的小问题记录下来 1.关于img自适应的问题 <div class="main"> <div ...

  4. 浏览器与web客户端的HTTP交互过程

    未经许可谢绝以任何形式对本文内容进行转载! HTTP协议是常见的几种应用层协议之一,当我们用浏览器和web客户端进行交互时html页面等内容的传输都是依靠该协议完成的.值得注意的是,HTTP使用的是T ...

  5. [java]wordcount程序

    词数统计系统. 作业解析:这次作业的内容是从本地读取一个程序代码,计算出这个程序中的行数,单词数,也可进行拓展. 实现语言:java 编程思路: 程序是由各种单词和符号组成的,单词包括关键字,标识符这 ...

  6. .Net Office开源组件

    1.NPOI NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目.使用 NPOI 你就可以在没有安装 Office 或者相应环 ...

  7. (转)Image Segmentation with Tensorflow using CNNs and Conditional Random Fields

    Daniil's blog Machine Learning and Computer Vision artisan. About/ Blog/ Image Segmentation with Ten ...

  8. SSR三网免流一键包以及使用教程

    这篇文章只是传统的SSR免流教程 首先拿到一台vps,可以是centos,可以是debian,也可以是ubuntu 使用xshell连接vps 执行一键安装包 wget http://104.224. ...

  9. Android Studio--学习系列(2)

    1.Failed to load the LayoutLib: com/android/layoutlib/bridge/Bridge : Unsupported major.minor versio ...

  10. Nginx中文域名配置

    Nginx虚拟主机上绑定一个带中文域名,比如linuxeye.中国,浏览器不能跳转. why? 因为操作系统的核心都是英文组成,DNS服务器的解析也是由英文代码交换,所以DNS服务器上并不支持直接的中 ...