首页 / JAVA / Java导出excel
Java导出excel
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java导出excel,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4981字,纯文字阅读大概需要8分钟。
内容图文
![Java导出excel](/upload/InfoBanner/zyjiaocheng/841/dbfb2831ffa249adb668bbcbd4e3ab29.jpg)
1. 下载jar包:
官方下载:http://poi.apache.org/download.html这里可以下载到它的最新版本和文档。
2. 将jar包加入到项目中:
将下载好的jar包加入到WEBINFO目录下的lib文件夹中,Eclipse用户选中jar包然后右击选择Build Path选项, Idea用户选中jar包然后右击选择Add as Library选项即可。
3.解释操作步骤:
首先,我们应该要知道的是,一个Excel文件对应一个workbook(工作簿),一个workbook中有多个sheet(工作表)组成,一个sheet是由多个行(row)和列(cell)组成。那么我们用poi要导出一个Excel表格
的正确顺序应该是:
1、用HSSFWorkbook打开或者创建“Excel文件对象”(工作簿)
2、用HSSFWorkbook对象返回或者创建Sheet对象(工作簿)
3、用Sheet对象返回行对象,用行对象得到Cell对象(行)
4、对Cell对象读写。(列)
5、将生成的HSSFWorkbook放入HttpServletResponse中响应到前端页面
代码如下:
/** * */ package excel; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; /** * @author hy * @date 2019-02-18 15:06:34 * */ public class OutExcel { public static void main(String[] args) { //第一行数据,一般用来存字段的名称 String title="姓名,性别,年龄,身高,联系方式"; //分割title String titString[]=title.split(","); List<String> contentList =new ArrayList<String>(); contentList.add("张三,男,16岁,170cm,13112341234"); contentList.add("李四 ,男,18岁,172cm,13012341234"); contentList.add("王五 ,女,17岁,165cm,13612349999"); contentList.add("赵六,男,20岁,178cm,18633330000"); contentList.add("孙七,女,16岁,168cm,15512341234"); String[] strArray=new String[contentList.size()]; /*String[][] strArray=new String[5][5]; //第二行数据 strArray[0][0]="张三"; strArray[0][1]="男"; strArray[0][2]="16岁"; strArray[0][3]="170cm"; strArray[0][4]="13112341234"; //第三行数据 strArray[1][0]="李四"; strArray[1][1]="男"; strArray[1][2]="18岁"; strArray[1][3]="172cm"; strArray[1][4]="13012341234"; //第四行数据 strArray[2][0]="王五"; strArray[2][1]="女"; strArray[2][2]="17岁"; strArray[2][3]="165cm"; strArray[2][4]="13612349999"; //第五行数据 strArray[3][0]="赵六"; strArray[3][1]="男"; strArray[3][2]="20岁"; strArray[3][3]="178cm"; strArray[3][4]="18633330000"; //第六行数据 strArray[4][0]="孙七"; strArray[4][1]="女"; strArray[4][2]="16岁"; strArray[4][3]="168cm"; strArray[4][4]="15512341234";*/ //setup1:创建工作簿 HSSFWorkbook hswk =new HSSFWorkbook(); //setup2:创建工作簿的样式 HSSFCellStyle cellStyle=hswk.createCellStyle(); //创建excel样式 cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框 cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框 cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框 cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框 cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中 cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中 //setup3:在工作簿创建一个工作表,并取名sheet1,设置单元格长度,高度 HSSFSheet hs =hswk.createSheet("sheet1"); hs.setDefaultColumnWidth( (short) 15 ); //设置单元格的宽度 //hs.setDefaultRowHeight((short) 256); //设置单元格的高度(貌似不起作用,后续研究。。。) // hs.setDefaultRowHeightInPoints(15); //setup4:在工作表中创建第一行,并根据标题长度设置列值,并将标题放入其中,加入样式 HSSFRow hsr =hs.createRow(0);//创建第0行 hsr.setHeightInPoints(20); //单独设置行高 for (int i = 0; i < titString.length; i++) { HSSFCell hc=hsr.createCell((short) i); hc.setCellValue(new HSSFRichTextString(titString[i].toString())); hc.setCellStyle(cellStyle); } //setup5:创建数据 for (int m = 0;m < contentList.size(); m++) { HSSFRow hrdata =hs.createRow(m+1);//(依次增加)设置数据的第一行(excel的第二行,前面标题占着一行) strArray=contentList.get(m).split(","); for (int n = 0; n < strArray.length; n++) { HSSFCell hc=hrdata.createCell((short) n); //(依次增加)数据的第一列,excel的第一列 System.out.println(strArray[n].toString()); hc.setCellValue(new HSSFRichTextString(strArray[n].toString())); hc.setCellStyle(cellStyle); } } /*for (int m = 0; m < strArray.length; m++) { HSSFRow hrdata =hs.createRow(m+1);//(依次增加)设置数据的第一行(excel的第二行,前面标题占着一行) for (int n = 0; n < strArray[m].length; n++) { HSSFCell hc=hrdata.createCell((short) n); //(依次增加)数据的第一列,excel的第一列 hc.setCellValue(new HSSFRichTextString(strArray[m][n])); hc.setCellStyle(cellStyle); } }*/ //输出Excel文件到磁盘目录 FileOutputStream output; try { output = new FileOutputStream("d:\\workbook.xlsx"); try { hswk.write(output); } catch (IOException e) { e.printStackTrace(); } try { output.flush(); } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } } }
运行截图:
这两个方法设置没有效果,后续研究。。。。。。。目前使用单个行设置,放在循环里循环一次。(setHeightInPoints(20))
hs.setDefaultRowHeight((short) 256); hs.setDefaultRowHeightInPoints(15);
内容总结
以上是互联网集市为您收集整理的Java导出excel全部内容,希望文章能够帮你解决Java导出excel所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。