1.需要jar包 jxl.jar 地址:https://download.youkuaiyun.com/download/haopingping_88/10750442
2.工具类
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
public class ExcelUtils {
public static void main(String[] args) {
List<List<String>> list1 = new ArrayList<>();
List<String> list1_1 = new ArrayList<>();
list1_1.add("123");
list1_1.add(null);
list1_1.add("789");
list1.add(list1_1);
List<String> list1_2 = new ArrayList<>();
list1_2.add("123");
list1_2.add("456");
list1_2.add("789");
list1.add(list1_2);
List<String> title = new ArrayList<>();
title.add("序号");
title.add("身份号");
title.add("手机号");
System.out.println(export("testExcel.xls",title,list1));
}
/**
*
* @param filename 定义excel名
* @param titleArray 定义显示的表格数据名
* @param excelData 数据
* @return
*/
public static String export(String filename,List<String> titleArray, List<List<String>> excelData) {
OutputStream os = null;
WritableWorkbook wwb = null;
try {
String filePath = FileUploadUtil.rootPath+filename;
// String filePath = "D://"+filename;
File file = new File(filePath);
if (!file.isFile())// 如果指定文件不存在,则新建该文件
file.createNewFile();
os = new FileOutputStream(file);// 创建一个输出流
wwb = Workbook.createWorkbook(os);
WritableSheet sheet = wwb.createSheet("sheet1", 0);// 创建一个工作页,第一个参数的页名,第二个参数表示该工作页在excel中处于哪一页
//添加标题
for(int i =0 ; i<titleArray.size(); i++) {
Label label = new Label(i, 0, titleArray.get(i));
sheet.addCell(label);
}
//添加数据
for(int i =0 ; i<excelData.size(); i++) {
for(int j = 0; j <excelData.get(i).size();j++ ){
Label label = new Label(j, i+1, excelData.get(i).get(j));
sheet.addCell(label);
}
}
wwb.write();
os.flush();
//返回访问地址
return FileUploadUtil.host+filename;
// return "http://localhost:8081/"+filename;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
} finally {
try {
if (wwb != null)
wwb.close();
if (os != null)
os.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
return null;
}
}