java 生成Excel表单
- 大部分生成Excel表格都是使用POI方式,网络上也有很多样例,在这里就不一一列表了。大家可以自己百度~~
- 现在展示一下最近看到的 阿里的 EasyExcel方法。
- 阿里源码 GitHub地址:https://github.com/alibaba/easyexcel
不说了 上菜
/**
* 静态方法 需要设置表头实体
* @throws Exception
*/
public static void writeExcel() throws Exception {
String filePath = "F:\\java\\excel\\dome.xlsx";
File file = new File(filePath);
if(!file.exists())
{
file.createNewFile();
}
//file out
OutputStream outputStream = new FileOutputStream(filePath);
ExcelWriter writer = EasyExcelFactory.getWriter(outputStream);
//写仅有一个Sheet 的 Excel 文件,此场景较为通用
Sheet sheet = new Sheet(1,0, WriteModel.class);
//第一个 sheet 名称
sheet.setSheetName("the first sheet");
//写数据到 Writer 上下文中
//入参1:创建要写入的模型数据
//入参2:要写入的目标 sheet
writer.write(createModelList(),sheet);
//将上下文中的最终 outputStream 写入到指定文件中
writer.finish();
//关闭流
outputStream.close();
}
private static List<WriteModel> createModelList()
{
List<WriteModel> writeModels = new ArrayList<>();
for (int i = 0; i < 100; i++) {
WriteModel writeModel = WriteModel.builder().name("代号00"+i).password("123*564").age(i+1).build();
writeModels.add(writeModel);
}
return writeModels;
}
/**
* 动态注入
* @throws IOException
*/
public static void writeExcel2() throws IOException {
//文件全路径
String filePath = "F:\\java\\excel\\dome2.xlsx";
File file = new File(filePath);
if (!file.exists())
{
file.createNewFile();
}
OutputStream out = new FileOutputStream(filePath);
ExcelWriter writer = EasyExcelFactory.getWriter(out);
Sheet sheet = new Sheet(1,0);
sheet.setSheetName("this is a active sheet");
//创建一个表格,用于 Sheet 中 使用
Table table = new Table(1);
//无注解的模式,动态添加表头
table.setHead(DataUtils.createTestListStringHead());
//写入数据
writer.write1(createDynamicModel(),sheet,table);
//将上下文中的最终 outPutStream 写入到指定文件中
writer.finish();
//关闭流
out.close();
}
private static List<List<Object>> createDynamicModel()
{
List<List<Object>> rows = new ArrayList<>();
for (int i = 0; i < 100 ; i++) {
List<Object> row = new ArrayList<>();
row.add("test"+i);
row.add(Long.valueOf(151515L +i));
row.add(Integer.valueOf(3232 +i));
row.add("bigDog");
row.add("testModel");
rows.add(row);
}
return rows;
}
public static void main(String[] args) throws Exception {
System.out.println("this is begining...");
writeExcel();
writeExcel2();
System.out.println("this is ending...");
}
还有依赖
<!--alibaba easyexcel-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>1.1.2-beta5</version>
</dependency>