实体类excel

  1. import java.util.List;
  2.  
  3. /**
  4. * 功能:
  5. * 描述:
  6. * @author
  7. * @date 2015-3-19 下午5:15:48
  8. */
  9. public class Excel {
  10. private String fileName;//sheet的名称
  11. private String[] handers;//sheet里的标题
  12. private List<String[]> dataset;//sheet里的数据集
  13.  
  14. /**
  15. *
  16. */
  17. public Excel(String fileName,String[] handers,List<String[]> dataset)
  18. {
  19. this.fileName = fileName;
  20. this.handers = handers;
  21. this.dataset = dataset;
  22. }
  23.  
  24. public String getFileName() {
  25. return fileName;
  26. }
  27. public void setFileName(String fileName) {
  28. this.fileName = fileName;
  29. }
  30. public String[] getHanders() {
  31. return handers;
  32. }
  33. public void setHanders(String[] handers) {
  34. this.handers = handers;
  35. }
  36. public List<String[]> getDataset() {
  37. return dataset;
  38. }
  39. public void setDataset(List<String[]> dataset) {
  40. this.dataset = dataset;
  41. }
  42.  
  43. }

具体实现

  1. import java.io.File;
  2. import java.io.FileNotFoundException;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. import java.io.OutputStream;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8.  
  9. import org.apache.poi.hssf.usermodel.HSSFCell;
  10. import org.apache.poi.hssf.usermodel.HSSFRow;
  11. import org.apache.poi.hssf.usermodel.HSSFSheet;
  12. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  13.  
  14. /**
  15. * 功能:将多个sheet导出到同一个出excel表格中
  16. * 描述:
  17. * @author
  18. * @date 2015-3-19 下午5:20:20
  19. */
  20. public class test {
  21. public static void main(String[] args) {
  22. String data1[] = {"111","2222","3333","44444"};
  23. String data2[] = {"111","2222","3333","44444","5555"};
  24. String handers1[] = {"一","二","三","四","五"};
  25. String handers2[] = {"one","two","three","four","five"};
  26. String handers3[] = {"车辆","毛衣","手机","茶杯","笔记本"};
  27. List<String[]> dataset = new ArrayList<String[]>();
  28. dataset.add(data1);
  29. dataset.add(data2);
  30.  
  31. Excel e1 = new Excel("第一个sheet", handers1, dataset);
  32. Excel e2 = new Excel("第二个sheet", handers2, dataset);
  33. Excel e3 = new Excel("第三个sheet", handers3, dataset);
  34.  
  35. List<Excel> mysheet = new ArrayList<Excel>();
  36. mysheet.add(e1);
  37. mysheet.add(e2);
  38. mysheet.add(e3);
  39.  
  40. test2(mysheet);
  41.  
  42. }
  43.  
  44. private static void test(){
  45. List<Object> list = new ArrayList<Object>();
  46. String[] handers = {"1","2","3","4","5"};
  47. HSSFWorkbook wb = new HSSFWorkbook();//创建工作薄
  48. HSSFSheet sheet = wb.createSheet("第一个sheet");//第一个sheet
  49. HSSFRow rowFirst = sheet.createRow(0);//第一个sheet的第一行为标题
  50. //写标题
  51. for(int i=0;i<handers.length;i++){
  52. //获取第一行的每个单元格
  53. HSSFCell cell = rowFirst.createCell(i);
  54. //往单元格里写数据
  55. cell.setCellValue(handers[i]);
  56. }
  57. //写数据集
  58. //假定数据集诗歌list集合
  59. for(int i=0;i<list.size();i++){
  60. //获取list里面存在是数据集对象
  61. Object obj = list.get(i);
  62. //创建数据行
  63. HSSFRow row = sheet.createRow(i+1);
  64. //设置对应单元格的值
  65. row.createCell(0).setCellValue("obj 的属性0");
  66. row.createCell(1).setCellValue("obj 的属性1");
  67. row.createCell(2).setCellValue("obj 的属性2");
  68. row.createCell(3).setCellValue("obj 的属性3");
  69. row.createCell(4).setCellValue("obj 的属性4");
  70. }
  71. //写文件
  72. try {
  73. OutputStream os = new FileOutputStream(new File("filepath"));
  74. wb.write(os);
  75. } catch (FileNotFoundException e) {
  76. // TODO Auto-generated catch block
  77. e.printStackTrace();
  78. } catch (IOException e) {
  79. // TODO Auto-generated catch block
  80. e.printStackTrace();
  81. }
  82.  
  83. }
  84.  
  85. /**
  86. * 具体sheet的操作
  87. * @author
  88. * @date 2015-3-19下午6:12:57
  89. * @param mysheets void
  90. */
  91. private static void test2(List<Excel> mysheets){
  92. HSSFWorkbook wb = new HSSFWorkbook();//创建工作薄
  93. List<Excel> sheets = mysheets;
  94. for(Excel excel:sheets){
  95. //新建一个sheet
  96. HSSFSheet sheet = wb.createSheet(excel.getFileName());//获取该sheet名称
  97.  
  98. String[] handers = excel.getHanders();//获取sheet的标题名
  99. HSSFRow rowFirst = sheet.createRow(0);//第一个sheet的第一行为标题
  100. //写标题
  101. for(int i=0;i<handers.length;i++){
  102. //获取第一行的每个单元格
  103. HSSFCell cell = rowFirst.createCell(i);
  104. //往单元格里写数据
  105. cell.setCellValue(handers[i]);
  106. }
  107.  
  108. //写数据集
  109. List<String[]> dataset = excel.getDataset();
  110. for(int i=0;i<dataset.size();i++){
  111. String[] data = dataset.get(i);//获取该对象
  112.  
  113. //创建数据行
  114. HSSFRow row = sheet.createRow(i+1);
  115.  
  116. for(int j=0;j<data.length;j++){
  117. //设置对应单元格的值
  118. row.createCell(j).setCellValue(data[i]);
  119. }
  120. }
  121.  
  122. }
  123.  
  124. // 写文件
  125. try {
  126. OutputStream os = new FileOutputStream(new File("D://test.xls"));
  127. wb.write(os);
  128. } catch (FileNotFoundException e) {
  129. e.printStackTrace();
  130. } catch (IOException e) {
  131. e.printStackTrace();
  132. }
  133.  
  134. }
  135.  
  136. }

将多个Sheet导入到同一个Excel文件中的更多相关文章

  1. C#利用NPOI在同一个Excel文件中创建多个sheet

    借用NPOI来实现,要在同一Excel文件中创建多个sheet,只需要在同一个workbook中创建多个sheet即可.要注意的是,sheet的名字一定不能重复.下面是实现的代码: private v ...

  2. C#可以获取Excel文件中Sheet的名字

    C#可以获取Excel文件中Sheet的名字吗 C#可以获取Excel文件中Sheet的名字吗 我试过WPS的表格可以 可以 要代码么 百度都有 [深圳]Milen(99696619)  14:13: ...

  3. java导入、导出Excel文件

    一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...

  4. [Python]将Excel文件中的数据导入MySQL

    Github Link 需求 现有2000+文件夹,每个文件夹下有若干excel文件,现在要将这些excel文件中的数据导入mysql. 每个excel文件的第一行是无效数据. 除了excel文件中已 ...

  5. 把当前文件夹的xlsx或xls文件合并到一个excel文件中的不同sheet中

    把当前文件夹的xlsx或xls文件合并到一个excel文件中的不同sheet中步骤如下: 把需要合并的文件放到同一个文件夹 在该文件夹中新建一个excel文件 打开新建的excel问价,把鼠标放到sh ...

  6. .Net应用导入、导出Excel文件

    本次阐述的导入和导出都围绕此Demo进行

  7. 如何使用JavaScript导入和导出Excel文件

    本文由葡萄城技术团队于原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. JavaScript是一个涵盖多种框架.直译式.可以轻松自定义客户端的脚本 ...

  8. 如何使用JavaScript实现前端导入和导出excel文件

    一.SpreadJS 简介 SpreadJS 是一款基于 HTML5 的纯 JavaScript 电子表格和网格功能控件,以“高速低耗.纯前端.零依赖”为产品特色,可嵌入任何操作系统,同时满足 .NE ...

  9. 前端必读3.0:如何在 Angular 中使用SpreadJS实现导入和导出 Excel 文件

    在之前的文章中,我们为大家分别详细介绍了在JavaScript.React中使用SpreadJS导入和导出Excel文件的方法,作为带给广大前端开发者的"三部曲",本文我们将为大家 ...

随机推荐

  1. jQuery siblings()用法与实例。

    jQuery 的遍历方法siblings() $("给定元素").siblings(".selected") 其作用是筛选给定的同胞同类元素(不包括给定元素本身 ...

  2. struts2请求过程源码分析(转)

    Struts2是Struts社区和WebWork社区的共同成果,我们甚至 可以说,Struts2是WebWork的升级版,他采用的正是WebWork的核心,所以,Struts2并不是一个不成熟的产品, ...

  3. 做个无边框winform窗体,并美化界面

    今天下午程序写完,有些时间就搞下界面美化,做个无框窗体.首先把窗体的FormBorderStyle设置为None,就变成无框的啦,不过你会发现这样窗体上就没有原来的最大最小化和关闭按钮了哦,所以要自己 ...

  4. Quartz 之 windowService

    (一)创建服务 QuarzService using System.ServiceProcess;using System.Text; using Quartz;using Quartz.Impl; ...

  5. CSS3之简易的3D模型构建[原创开源]

    CSS3之简易的3D模型构建[开源分享] 先上一张图(成果图):这个是使用 3D建模空间[源码之一] 制作出来的模型之一 当然这是一部分模型特写, 之前还制作过枪的3D模型等等. 感兴趣的朋友可以自己 ...

  6. 调度思路+EurekaServer获得当前机器的instanceid

    调度思路 概念 Build 一次完整的构建 整个流水线 Task(BuidStep) 流水线中的某一个步骤单元 先假设对于一个Build(流水线)而言里面所有Task是串行执行的 并且各Task之间不 ...

  7. css3流式布局

    css3布局方式: 不推荐使用float,有时候使用浮动的时候,对于可适应的流氏布局,无法胜任. 推荐使用css3的display:webkit-box. 使用的html代码 <div clas ...

  8. Python学习笔记——几种数据类型

    1. 列表list: Python内置的一种数据类型是列表:list,用中括号[]表示.list是一种有序的集合,可以随时添加和删除其中的元素,而且元素的类型不必相同.list可以通过下标来访问,范围 ...

  9. LFS实践

    用了三天,编译了两次LFS,把LFS的基本流程和原理都弄清了.用的是LFS 6.3,使用的教程是LFS速成手册(6.3) ,感觉很不错,如果按照它的做法,一步一步来,基本都能编译成功而且没什么错误.不 ...

  10. VS2013发布web项目到IIS上遇到的问题总结

    vs2010发布网站到本地IIS的步骤  http://blog.csdn.net/cx_wzp/article/details/8805365 问题一:HTTP 错误 403.14 - Forbid ...