java实现excel的导出

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_20009015/article/details/84647254

java Excel的三种解析

1.POI 是apche软件基金会的开源函数库 提供api对microsoft office格式档案读写功能

2.HSSFF 纯java代码读取 写入 修改 EXcel文件 (2007以下版本) 还要xssf (对2007以上版本的excel) HWPF等(对word)

3.itext.jar 可以生成pdf文件

4. JXL 开源项目 可以对excel进行创建 修改 更新 包括设置字体 颜色 背景等等

5.fastExcel 纯java开发的excel文件读写组件 支持excel97-2003文件格式 只能读取单元格字符信息 但是只需要很小的内存 效率高

主要是POI 和JXL

POI操作效率高 但是操作复杂 支持公式 宏

JXL效率低 但是操作简单 格式不如POI强大

maven引入三方

<!-- https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl -->

<dependency>

<groupId>net.sourceforge.jexcelapi</groupId>

<artifactId>jxl</artifactId>

<version>2.6.12</version>

</dependency>

</dependencies>

//创建工作薄

WritableWorkbook workbook = Workbook.createWorkbook(out);

//创建sheet

WritableSheet sheet=workbook.createSheet("sheet1",0);

//单元格

Label label=null;

//数组存表头

String[] title={"id","name","sex"};

//设置列名

for(int i=0;i<title.length;i++){

label=new Label(i,0,title[i]);

sheet.addCell(label);

}

for(int i=1;i<10;i++){

//第一列 new Label(0,i,"a"); 0是列 i是行

label =new Label(0,i,"a");

sheet.addCell(label);

//第二列

label =new Label(1,i,"user");

sheet.addCell(label);

//第三列

label =new Label(2,i,"男");

sheet.addCell(label);

}

//写入数据

workbook.write();

workbook.close();

如果要访问url就能下载文件 那么返回到要是一个流

@GetMapping(value = "excel")

public void excel(HttpServletResponse response) throws IOException, WriteException {

response.setContentType("application/octet-stream");

response.setHeader("Content-Disposition", "attachment;filename=car_test.xls");

ServletOutputStream out=response.getOutputStream();

//创建工作薄

WritableWorkbook workbook = Workbook.createWorkbook(out);

//创建sheet

WritableSheet sheet=workbook.createSheet("sheet1",0);

//单元格

Label label=null;

//数组存表头

String[] title={"id","name","sex"};

//设置列名

for(int i=0;i<title.length;i++){

label=new Label(i,0,title[i]);

sheet.addCell(label);

}

for(int i=1;i<10;i++){

//第一列 new Label(0,i,"a"); 0是列 i是行

label =new Label(0,i,"a");

sheet.addCell(label);

//第二列

label =new Label(1,i,"user");

sheet.addCell(label);

//第三列

label =new Label(2,i,"男");

sheet.addCell(label);

}

//写入数据

workbook.write();

workbook.close();

out.flush();

out.close();

}

猜你喜欢

转载自blog.csdn.net/qq_20009015/article/details/84647254