java写入excel文件poi
java写入excel文件
java写入excel文件poi,支持xlsx与xls,没有文件自动创建
- package com.utils;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.hssf.util.HSSFColor;
- import org.apache.poi.ss.usermodel.Cell;
- import org.apache.poi.ss.usermodel.CellStyle;
- import org.apache.poi.ss.usermodel.Font;
- import org.apache.poi.ss.usermodel.Row;
- import org.apache.poi.ss.usermodel.Sheet;
- import org.apache.poi.ss.usermodel.Workbook;
- import org.apache.poi.ss.util.CellRangeAddress;
- import org.apache.poi.xssf.usermodel.XSSFWorkbook;
- import com.exception.SimpleException;
- /**
- * 从excel读取数据/往excel中写入 excel有表头,表头每列的内容对应实体类的属性
- *
- * @author nagsh
- *
- */
- public class ExcelManage {
- public static void main(String[] args) throws IOException {
- String path = "E:/";
- String fileName = "被保险人员清单(新增)04";
- String fileType = "xlsx";
- List<InsuraceExcelBean> list = new ArrayList<>();
- for(int i=0; i<6; i++){
- InsuraceExcelBean bean = new InsuraceExcelBean();
- bean.setInsuraceUser("test"+i);
- bean.setBankCardId("4444444444"+i+","+"55544444444444"+i+","+"999999999999999"+i);
- bean.setIdCard("666666"+i);
- bean.setBuyTime("2016-05-06");
- bean.setInsEndTime("2016-05-07");
- bean.setInsStartTime("2017-05-06");
- bean.setMoney("20,000");
- bean.setType("储蓄卡");
- list.add(bean);
- }
- String title[] = {"被保险人姓名","身份证号","账户类型","银行卡号","保险金额(元)","购买时间","保单生效时间","保单失效时间"};
- // createExcel("E:/被保险人员清单(新增).xlsx","sheet1",fileType,title);
- writer(path, fileName, fileType,list,title);
- }
- @SuppressWarnings("resource")
- public static void writer(String path, String fileName,String fileType,List<InsuraceExcelBean> list,String titleRow[]) throws IOException {
- Workbook wb = null;
- String excelPath = path+File.separator+fileName+"."+fileType;
- File file = new File(excelPath);
- Sheet sheet =null;
- //创建工作文档对象
- if (!file.exists()) {
- if (fileType.equals("xls")) {
- wb = new HSSFWorkbook();
- } else if(fileType.equals("xlsx")) {
- wb = new XSSFWorkbook();
- } else {
- throw new SimpleException("文件格式不正确");
- }
- //创建sheet对象
- sheet = (Sheet) wb.createSheet("sheet1");
- OutputStream outputStream = new FileOutputStream(excelPath);
- wb.write(outputStream);
- outputStream.flush();
- outputStream.close();
- } else {
- if (fileType.equals("xls")) {
- wb = new HSSFWorkbook();
- } else if(fileType.equals("xlsx")) {
- wb = new XSSFWorkbook();
- } else {
- throw new SimpleException("文件格式不正确");
- }
- }
- //创建sheet对象
- if (sheet==null) {
- sheet = (Sheet) wb.createSheet("sheet1");
- }
- //添加表头
- Row row = sheet.createRow(0);
- Cell cell = row.createCell(0);
- row.setHeight((short) 540);
- cell.setCellValue("被保险人员清单"); //创建第一行
- CellStyle style = wb.createCellStyle(); // 样式对象
- // 设置单元格的背景颜色为淡蓝色
- style.setFillForegroundColor(HSSFColor.PALE_BLUE.index);
- style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);// 垂直
- style.setAlignment(CellStyle.ALIGN_CENTER);// 水平
- style.setWrapText(true);// 指定当单元格内容显示不下时自动换行
- cell.setCellStyle(style); // 样式,居中
- Font font = wb.createFont();
- font.setBoldweight(Font.BOLDWEIGHT_BOLD);
- font.setFontName("宋体");
- font.setFontHeight((short) 280);
- style.setFont(font);
- // 单元格合并
- // 四个参数分别是:起始行,起始列,结束行,结束列
- sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 7));
- sheet.autoSizeColumn(5200);
- row = sheet.createRow(1); //创建第二行
- for(int i = 0;i < titleRow.length;i++){
- cell = row.createCell(i);
- cell.setCellValue(titleRow[i]);
- cell.setCellStyle(style); // 样式,居中
- sheet.setColumnWidth(i, 20 * 256);
- }
- row.setHeight((short) 540);
- //循环写入行数据
- for (int i = 0; i < list.size(); i++) {
- row = (Row) sheet.createRow(i+2);
- row.setHeight((short) 500);
- row.createCell(0).setCellValue(( list.get(i)).getInsuraceUser());
- row.createCell(1).setCellValue(( list.get(i)).getIdCard());
- row.createCell(2).setCellValue(( list.get(i)).getType());
- row.createCell(3).setCellValue(( list.get(i)).getBankCardId());
- row.createCell(4).setCellValue(( list.get(i)).getMoney());
- row.createCell(5).setCellValue(( list.get(i)).getBuyTime());
- row.createCell(6).setCellValue(( list.get(i)).getInsStartTime());
- row.createCell(7).setCellValue(( list.get(i)).getInsEndTime());
- }
- //创建文件流
- OutputStream stream = new FileOutputStream(excelPath);
- //写入数据
- wb.write(stream);
- //关闭文件流
- stream.close();
- }
- }
可以直接测试通过
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的更多相关文章
- C++读写EXCEL文件OLE,java读写excel文件POI 对比
C++读写EXCEL文件方式比较 有些朋友问代码的问题,将OLE读写的代码分享在这个地方,大家请自己看.http://www.cnblogs.com/destim/p/5476915.html C++ ...
- java读写excel文件( POI解析Excel)
package com.zhx.base.utils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi ...
- 使用java写入excel文件
要操作excle文件,首先要下载jxl.jar文件,我用的版本是2.6.下载地址:http://www.andykhan.com/jexcelapi/download.html. Java Excel ...
- 从网络上获取图片,并写入excel文件
package com.weChat.utils; import com.manage.utils.DateUtil;import com.manage.utils.MD5Util;import or ...
- 一脸懵逼学习Java操作Excel之POI(Apache POI)
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 1:下面简单的程序来创建一个空白Microsoft ...
- JXL包大解析;Java程序生成excel文件和解析excel文件内容
最近需求变化,需要把excel导入 我以前没有做过,所以我查了一些资料 和参考别人的代码 以下是多种方式: import java.io.File; import java.io.FileInputS ...
- Java读取Excel文件的几种方法
Java读取 Excel 文件的常用开源免费方法有以下几种: 1. JDBC-ODBC Excel Driver 2. jxl.jar 3. jcom.jar 4. poi.jar 简单介绍: 百度文 ...
- 利用java读写Excel文件
一.读取Excel文件内容 java 代码 public static String readExcel(File file){ StringBuffer sb = new StringBuffer( ...
- java读取excel文件的代码
如下内容段是关于java读取excel文件的内容,应该能对各朋友有所用途. package com.zsmj.utilit; import java.io.FileInputStream;import ...
随机推荐
- 转:StrictMode使用
最新的Android平台中(Android 2.3起),新增加了一个新的类,叫StrictMode(android.os.StrictMode).这个类可以用来帮助开发者改进他们编写的应用,并且提供了 ...
- 论SCRM系统对传统行业的冲击
SCRM(Social Customer Relationship Management)顾名思义是社会型客户关系管理系统,这在当前的电子商务领域是一个创新的概念,由于社交媒体(Social Medi ...
- HTML学习-日常问题-1
最近入了Html的坑 所以开始了学习前端的漫长道路 所以打算将日常遇到的小问题记录下来 1.关于img自适应的问题 <div class="main"> <div ...
- 浏览器与web客户端的HTTP交互过程
未经许可谢绝以任何形式对本文内容进行转载! HTTP协议是常见的几种应用层协议之一,当我们用浏览器和web客户端进行交互时html页面等内容的传输都是依靠该协议完成的.值得注意的是,HTTP使用的是T ...
- [java]wordcount程序
词数统计系统. 作业解析:这次作业的内容是从本地读取一个程序代码,计算出这个程序中的行数,单词数,也可进行拓展. 实现语言:java 编程思路: 程序是由各种单词和符号组成的,单词包括关键字,标识符这 ...
- .Net Office开源组件
1.NPOI NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目.使用 NPOI 你就可以在没有安装 Office 或者相应环 ...
- (转)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 ...
- SSR三网免流一键包以及使用教程
这篇文章只是传统的SSR免流教程 首先拿到一台vps,可以是centos,可以是debian,也可以是ubuntu 使用xshell连接vps 执行一键安装包 wget http://104.224. ...
- Android Studio--学习系列(2)
1.Failed to load the LayoutLib: com/android/layoutlib/bridge/Bridge : Unsupported major.minor versio ...
- Nginx中文域名配置
Nginx虚拟主机上绑定一个带中文域名,比如linuxeye.中国,浏览器不能跳转. why? 因为操作系统的核心都是英文组成,DNS服务器的解析也是由英文代码交换,所以DNS服务器上并不支持直接的中 ...