该工具类支持简单的导出逻辑,内容极少,可方便接入测试。
maven依赖:
<!--excel导出类-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.16</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>28.1-jre</version>
</dependency>
excel工具类:
public class ExcelUtil {
public static void writeExcel(List<List<String>> result, String path){
if(result == null){
return;
}
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("sheet1");
for(int i = 0 ;i < result.size() ; i++){
HSSFRow row = sheet.createRow(i);
if(result.get(i) != null){
for(int j = 0; j < result.get(i).size() ; j ++){
HSSFCell cell = row.createCell(j);
cell.setCellType(CellType.STRING);
cell.setCellValue(result.get(i).get(j));
}
}
}
ByteArrayOutputStream os = new ByteArrayOutputStream();
try
{
wb.write(os);
} catch (IOException e){
e.printStackTrace();
}
byte[] content = os.toByteArray();
File file = new File(path);//Excel文件生成后存储的位置。
OutputStream fos = null;
try
{
fos = new FileOutputStream(file);
fos.write(content);
os.close();
fos.close();
}catch (Exception e){
e.printStackTrace();
}
}
private static List<List<String>> buildExcelDataHead(){
List<List<String>> dataLists = Lists.newArrayList();
List<String> dataHeads = new ArrayList<>();
dataHeads.add("表头1");
dataHeads.add("表头2");
dataLists.add(dataHeads);
return dataLists;
}
private static void setData(List<List<String>> dataLists){
List<String> dataList =new ArrayList<>();
dataList.add("data1");
dataList.add("data2");
dataLists.add(dataList);
}
//测试
public static void main(String[] args) {
List<List<String>> dataLists = buildExcelDataHead();
setData(dataLists);
ExcelUtil.writeExcel(dataLists,"/Users/xxx/Downloads/test/test.xls");
}
}