Java Jxls Excel 的导出
项目背景:
最近接了同事的框架,研究了两天,发现这框架居然连excel导入导出都木有,坑啊。然后决定自己加一个,利用Response的方法:getWriter():PrintWriter;获得一个字符输出流,该输出流可以向客户端输出数据。虽然想法很美好,但是!!框架限定了Response和Request的使用,深坑。。
最后决定使用笨办法——Jxls,Jxls是一个简单的、轻量级的excel导出库。直接上代码:
首先,在配置文件中加入依赖
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls-poi</artifactId>
<version>1.0.9</version>
</dependency>
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls-jexcel</artifactId>
<version>1.0.6</version>
</dependency>
<dependency>
<groupId>net.sf.jxls</groupId>
<artifactId>jxls-core</artifactId>
<version>1.0.3</version>
</dependency>
然后创建Excel下载接口
public void export(){
//获取数据部分
String sql = "select * from 表名";
//获取标题部分
Map<String, String> titleData = new LinkedHashMap<String, String>();//标题,后面用到
//获取字段部分
String sqldata ="SELECT COLUMN_NAME,column_comment FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name='表名' AND table_schema='数据库名'";
List<Record> list =Db.find(sqldata);
for (int i =0;i<list.size();i++){
titleData.put(list.get(i).getStr("COLUMN_NAME"),list.get(i).getStr