使用POI导出Excel

package com.cn.test;


import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;


import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;


import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;


public class Test {
//模拟接口访问数据库返回的json数据
private final static String RESULT = "[{\"id\": 1,\"duration\": 0.35,\"longcost\": 0.8},{\"id\": 1,\"duration\": 0.4,\"longcost\": 0.9}]";

public static void main(String[] args) {

ArrayList<ArrayList<String>> data = new ArrayList<ArrayList<String>>();
getHeadsList(data);
getContentsList(data);
arrayToXSL(data);

}
public static ArrayList<ArrayList<String>> getHeadsList(ArrayList<ArrayList<String>> list){
ArrayList<String> heads = new ArrayList<String>();
heads.add("duration");
heads.add("id");
heads.add("longcost");
list.add(heads);
return list;
}


public static ArrayList<ArrayList<String>> getContentsList(ArrayList<ArrayList<String>> list){
Gson gson = new Gson();
ArrayList<Map<String,String>> data = gson.fromJson(RESULT, new TypeToken<ArrayList<Map<String,String>>>(){}.getType());
for(int i = 0; i < data.size();i++) {
Map<String,String> map = data.get(i);
ArrayList<String> result = new ArrayList<String>();
for(Entry<String,String> entry : map.entrySet()) {
result.add(entry.getValue());
}
list.add(result);
}
return list;
}

public static File arrayToXSL(ArrayList<ArrayList<String>> arrayList) {
String path = "C:\\Users\\12\\Desktop\\test.xls";
FileOutputStream file = null;
try {
file = new FileOutputStream(path);
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
HSSFRow row;
System.out.println("arrayList : " + arrayList.size());


for (int i = 0; i < arrayList.size(); i++) {
row = sheet.createRow(i);
for (int j = 0; j < arrayList.get(i).size(); j++) {
HSSFCell cell = row.createCell(j);
if (null == arrayList.get(i).get(j)) {
cell.setCellValue("");
} else {
cell.setCellValue(arrayList.get(i).get(j));
}
}
}


workbook.write(file);
} catch (Exception e) {
e.getMessage();
} finally {
try {
file.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return new File(path);
}
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值