关于把数据信息导出到Excel

java的poi技术读取Excel[2003-2007,2010]

以下内容出自别处,复制只为方便自己查看

这篇blog主要是讲述java中poi读取excel,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为:xls和xlsx。

读取excel和MySQL相关: java的poi技术读取Excel数据到MySQL

你也可以在 : java的poi技术读取和导入Excel了解到写入Excel的方法信息

使用JXL技术 :java的jxl技术导入Excel 

下面是本文的项目结构:

项目中所需要的jar文件:

所用的Excel数据(2003-2007,2010都是一样的数据

运行效果:

=================================================

源码部分:

=================================================

/Excel2010/src/com/b510/common/Common.java

 1 /**
 2  *
 3  */
 4 package com.b510.common;
 5
 6 /**
 7  * @author Hongten
 8  * @created 2014-5-21
 9  */
10 public class Common {
11
12     public static final String OFFICE_EXCEL_2003_POSTFIX = "xls";
13     public static final String OFFICE_EXCEL_2010_POSTFIX = "xlsx";
14
15     public static final String EMPTY = "";
16     public static final String POINT = ".";
17     public static final String LIB_PATH = "lib";
18     public static final String STUDENT_INFO_XLS_PATH = LIB_PATH + "/student_info" + POINT + OFFICE_EXCEL_2003_POSTFIX;
19     public static final String STUDENT_INFO_XLSX_PATH = LIB_PATH + "/student_info" + POINT + OFFICE_EXCEL_2010_POSTFIX;
20     public static final String NOT_EXCEL_FILE = " : Not the Excel file!";
21     public static final String PROCESSING = "Processing...";
22
23 }

/Excel2010/src/com/b510/excel/ReadExcel.java

  1 /**
  2  *
  3  */
  4 package com.b510.excel;
  5
  6 import java.io.FileInputStream;
  7 import java.io.IOException;
  8 import java.io.InputStream;
  9 import java.util.ArrayList;
 10 import java.util.List;
 11
 12 import org.apache.poi.hssf.usermodel.HSSFCell;
 13 import org.apache.poi.hssf.usermodel.HSSFRow;
 14 import org.apache.poi.hssf.usermodel.HSSFSheet;
 15 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 16 import org.apache.poi.xssf.usermodel.XSSFCell;
 17 import org.apache.poi.xssf.usermodel.XSSFRow;
 18 import org.apache.poi.xssf.usermodel.XSSFSheet;
 19 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 20
 21 import com.b510.common.Common;
 22 import com.b510.excel.util.Util;
 23 import com.b510.excel.vo.Student;
 24
 25 /**
 26  * @author Hongten
 27  * @created 2014-5-20
 28  */
 29 public class ReadExcel {
 30
 31     /**
 32      * read the Excel file
 33      * @param path the path of the Excel file
 34      * @return
 35      * @throws IOException
 36      */
 37     public List<Student> readExcel(String path) throws IOException {
 38         if (path == null || Common.EMPTY.equals(path)) {
 39             return null;
 40         } else {
 41             String postfix = Util.getPostfix(path);
 42             if (!Common.EMPTY.equals(postfix)) {
 43                 if (Common.OFFICE_EXCEL_2003_POSTFIX.equals(postfix)) {
 44                     return readXls(path);
 45                 } else if (Common.OFFICE_EXCEL_2010_POSTFIX.equals(postfix)) {
 46                     return readXlsx(path);
 47                 }
 48             } else {
 49                 System.out.println(path + Common.NOT_EXCEL_FILE);
 50             }
 51         }
 52         return null;
 53     }
 54
 55     /**
 56      * Read the Excel 2010
 57      * @param path the path of the excel file
 58      * @return
 59      * @throws IOException
 60      */
 61     public List<Student> readXlsx(String path) throws IOException {
 62         System.out.println(Common.PROCESSING + path);
 63         InputStream is = new FileInputStream(path);
 64         XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);
 65         Student student = null;
 66         List<Student> list = new ArrayList<Student>();
 67         // Read the Sheet
 68         for (int numSheet = 0; numSheet < xssfWorkbook.getNumberOfSheets(); numSheet++) {
 69             XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(numSheet);
 70             if (xssfSheet == null) {
 71                 continue;
 72             }
 73             // Read the Row
 74             for (int rowNum = 1; rowNum <= xssfSheet.getLastRowNum(); rowNum++) {
 75                 XSSFRow xssfRow = xssfSheet.getRow(rowNum);
 76                 if (xssfRow != null) {
 77                     student = new Student();
 78                     XSSFCell no = xssfRow.getCell(0);
 79                     XSSFCell name = xssfRow.getCell(1);
 80                     XSSFCell age = xssfRow.getCell(2);
 81                     XSSFCell score = xssfRow.getCell(3);
 82                     student.setNo(getValue(no));
 83                     student.setName(getValue(name));
 84                     student.setAge(getValue(age));
 85                     student.setScore(Float.valueOf(getValue(score)));
 86                     list.add(student);
 87                 }
 88             }
 89         }
 90         return list;
 91     }
 92
 93     /**
 94      * Read the Excel 2003-2007
 95      * @param path the path of the Excel
 96      * @return
 97      * @throws IOException
 98      */
 99     public List<Student> readXls(String path) throws IOException {
100         System.out.println(Common.PROCESSING + path);
101         InputStream is = new FileInputStream(path);
102         HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);
103         Student student = null;
104         List<Student> list = new ArrayList<Student>();
105         // Read the Sheet
106         for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {
107             HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
108             if (hssfSheet == null) {
109                 continue;
110             }
111             // Read the Row
112             for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
113                 HSSFRow hssfRow = hssfSheet.getRow(rowNum);
114                 if (hssfRow != null) {
115                     student = new Student();
116                     HSSFCell no = hssfRow.getCell(0);
117                     HSSFCell name = hssfRow.getCell(1);
118                     HSSFCell age = hssfRow.getCell(2);
119                     HSSFCell score = hssfRow.getCell(3);
120                     student.setNo(getValue(no));
121                     student.setName(getValue(name));
122                     student.setAge(getValue(age));
123                     student.setScore(Float.valueOf(getValue(score)));
124                     list.add(student);
125                 }
126             }
127         }
128         return list;
129     }
130
131     @SuppressWarnings("static-access")
132     private String getValue(XSSFCell xssfRow) {
133         if (xssfRow.getCellType() == xssfRow.CELL_TYPE_BOOLEAN) {
134             return String.valueOf(xssfRow.getBooleanCellValue());
135         } else if (xssfRow.getCellType() == xssfRow.CELL_TYPE_NUMERIC) {
136             return String.valueOf(xssfRow.getNumericCellValue());
137         } else {
138             return String.valueOf(xssfRow.getStringCellValue());
139         }
140     }
141
142     @SuppressWarnings("static-access")
143     private String getValue(HSSFCell hssfCell) {
144         if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {
145             return String.valueOf(hssfCell.getBooleanCellValue());
146         } else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {
147             return String.valueOf(hssfCell.getNumericCellValue());
148         } else {
149             return String.valueOf(hssfCell.getStringCellValue());
150         }
151     }
152 }

/Excel2010/src/com/b510/excel/client/Client.java

 1 /**
 2  *
 3  */
 4 package com.b510.excel.client;
 5
 6 import java.io.IOException;
 7 import java.util.List;
 8
 9 import com.b510.common.Common;
10 import com.b510.excel.ReadExcel;
11 import com.b510.excel.vo.Student;
12
13 /**
14  * @author Hongten
15  * @created 2014-5-21
16  */
17 public class Client {
18
19     public static void main(String[] args) throws IOException {
20         String excel2003_2007 = Common.STUDENT_INFO_XLS_PATH;
21         String excel2010 = Common.STUDENT_INFO_XLSX_PATH;
22         // read the 2003-2007 excel
23         List<Student> list = new ReadExcel().readExcel(excel2003_2007);
24         if (list != null) {
25             for (Student student : list) {
26                 System.out.println("No. : " + student.getNo() + ", name : " + student.getName() + ", age : " + student.getAge() + ", score : " + student.getScore());
27             }
28         }
29         System.out.println("======================================");
30         // read the 2010 excel
31         List<Student> list1 = new ReadExcel().readExcel(excel2010);
32         if (list1 != null) {
33             for (Student student : list1) {
34                 System.out.println("No. : " + student.getNo() + ", name : " + student.getName() + ", age : " + student.getAge() + ", score : " + student.getScore());
35             }
36         }
37     }
38 }

/Excel2010/src/com/b510/excel/util/Util.java

 1 /**
 2  *
 3  */
 4 package com.b510.excel.util;
 5
 6 import com.b510.common.Common;
 7
 8 /**
 9  * @author Hongten
10  * @created 2014-5-21
11  */
12 public class Util {
13
14     /**
15      * get postfix of the path
16      * @param path
17      * @return
18      */
19     public static String getPostfix(String path) {
20         if (path == null || Common.EMPTY.equals(path.trim())) {
21             return Common.EMPTY;
22         }
23         if (path.contains(Common.POINT)) {
24             return path.substring(path.lastIndexOf(Common.POINT) + 1, path.length());
25         }
26         return Common.EMPTY;
27     }
28 }

/Excel2010/src/com/b510/excel/vo/Student.java

 1 /**
 2  *
 3  */
 4 package com.b510.excel.vo;
 5
 6 /**
 7  * Student
 8  *
 9  * @author Hongten
10  * @created 2014-5-18
11  */
12 public class Student {
13     /**
14      * id
15      */
16     private Integer id;
17     /**
18      * 学号
19      */
20     private String no;
21     /**
22      * 姓名
23      */
24     private String name;
25     /**
26      * 学院
27      */
28     private String age;
29     /**
30      * 成绩
31      */
32     private float score;
33
34     public Integer getId() {
35         return id;
36     }
37
38     public void setId(Integer id) {
39         this.id = id;
40     }
41
42     public String getNo() {
43         return no;
44     }
45
46     public void setNo(String no) {
47         this.no = no;
48     }
49
50     public String getName() {
51         return name;
52     }
53
54     public void setName(String name) {
55         this.name = name;
56     }
57
58     public String getAge() {
59         return age;
60     }
61
62     public void setAge(String age) {
63         this.age = age;
64     }
65
66     public float getScore() {
67         return score;
68     }
69
70     public void setScore(float score) {
71         this.score = score;
72     }
73
74 }

相关Jar文件下载:http://pan.baidu.com/s/1mg7IG6c

源码下载:http://pan.baidu.com/s/1qWwfpDi

时间: 2024-10-18 14:02:41

关于把数据信息导出到Excel的相关文章

.Net中DataGridview数据如何导出到excel表

首先,这个问题在网上有很多答案,也有很多解决的方法.其次,很多人写过类似的博客 .我的这篇博客,主要是写给那些刚刚接触或接触不久.NET并使用其做程序的人,更是写个自己,记录一下方法,方便以后使用. 在窗体中添加一个DataGridView控件,DatagridView获得数据: DataGridView1.DataSource = crList(泛型)或DataGridView1.DataSource=DataSet.Table(0).{注意:通过查询数据库,将查询到的数据放入crList或D

将GridView数据直接导出为EXCEL(保留样式),适用GV不分页的情况

Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8"); Response.Charset = ""; Response.ContentType = "application/vnd.ms-excel"; EnableViewState = false; System.IO.StringWriter tw = new System.IO.StringWriter()

.net中数据集合导出为Excel(支持泛型及显示字段顺序,可自定义显示列名)

摘要:咳咳~入园快两年,工作也快将近两年了,这才打算写自己在园中的第一篇文章,主要因为之前只是小白一个,肚子里没有什么墨水,现如今,也喝了些许墨水~当然墨水来源也是受益于广大程序猿们的技术分享,感谢,共同进步! 好了,废话不多说,直接切入今天要分享的主题. 主题:.net中数据集合导出为Excel 背景:如今越来越多的公司开始注重了大数据,公司开始通过数据来分析用户的行为习惯或者某些产品给公司带来的利害,总之这些数据都可以很好的帮助公司做的更好,了解自身的优缺点从而更好的为用户服务获取更大的利益

salesforce 零基础学习(二十三)数据记录导出至excel(自定义报表导出)

我们都知道,报表有个功能为导出excel,但是有的时候客户需求往往标准的报表达不到,比如导出excel,其中本月修改的数据字段标红,如下图所示. 这就需要我们去写VF来实现此功能. 需求:将数据表记录导出成excel,其中excel内容需要本月修改的数据字段自动标红显示. 表:Goods__c,字段如下: 设计思路:如果导出excel并且需要跟踪每个字段的修改时间进行校验是否标红,则需要有一个表取跟踪这个表.有两种方式进行Track. 1.salesforce中提供了Track History功

使用pentaho工具将数据库数据导入导出为Excel

写在前面:本篇博客讲述的是如何使用pentaho工具快速的将数据库数据导出为Excel文件,以及如何将Excel文件数据导入数据库. 补充:使用此工具并不需要任何一句代码并能快速便捷解决实际问题,此工具功能不仅仅局限这一点,其他功能后续更新. 工具下载:你可以根据你电脑的系统选择不同版本在pentaho官网进行下载: http://www.pentaho.com/download 需求一:将mysql一张表数据导出到Excel 第一步:添加数据库驱动包 注意:由于本例我要将mysql数据库数据导

C#开发---利用特性自定义数据通用导出到Excel

网上C#导出Excel的方法有很多.但用来用去感觉不够自动化.于是花了点时间,利用特性做了个比较通用的导出方法.只需要根据实体类,自动导出想要的数据  1.在NuGet上安装Aspose.Cells或者用微软自带类库也可以  2.需要导出的数据的实例类: using System.ComponentModel; using System.Reflection; using System.Runtime.Serialization; public class OrderReport { [Disp

使用PHPExcel实现数据批量导出为excel表格

首先需要下载PHPExecel类文件,帮助文档可以参考PHPExcel中文帮助手册|PHPExcel使用方法. 下面直接上例子,是我自己写的一个简单的批量导出数据为excel的例子 前台页面 比较简单,就是一个超链接,跳转到处理页面,超链接也可以跟一些参数(看需求)! <a href="./Process1.php">导出excel表格</a> 后台Process.php页面 /** * 批量导出数据 * @param $arr 从数据库查询出来,即要导出的数据

用C# ASP.net将数据库中的数据表导出到Excel中

需要用到组件GridView和一个button即可. 给GridView添加一个数据源, 选择你想要的数据库中的表的字段,添加成功后GridView中就显示数据. 再添加一个button,双击控件添加相对应的功能代码 功能代码如下: protected void Button1_Click(object sender, EventArgs e) { string FileName = "得分表 " + DateTime.Now + ".xls"; Response.

C#数据列表导出为Excel

以下DataTable转Excel为引用他人页面,https://jingyan.baidu.com/article/fedf0737a0f54335ac8977b8.html 其余类型转Excel为自己所需要而进行更改的. 此篇文章为记录该功能编写,如果该断代码,对各位有用,各位在使用时,所遇到的问题,所采用的解决方法希望能贴以下,万一我也遇到别的问题好借鉴各位大佬的. /// <summary> /// 导出设备造册管理列表 /// </summary> /// <par