接着上一篇,对于xls进行封装,形成工具类。
XLSUtil
public class XLSUtil {
/**
* data的种类:Long Int String
* @param title
* @param heads
* @param data
* @return
*/
public static HSSFWorkbook getWorkBook(List<XLSSheet> sheets) {
// 创建一个新的Excel
HSSFWorkbook workBook = new HSSFWorkbook();
for (int i = 0; i < sheets.size(); i++) {
XLSSheet xlsSheet = sheets.get(i);
// 创建一个sheet
HSSFSheet sheet = workBook.createSheet();
// sheet页名称
workBook.setSheetName(i, xlsSheet.getTitle());
// 创建header页,用于打印sheet
HSSFHeader header = sheet.getHeader();
// 设置标题居中
header.setCenter(xlsSheet.getTitle());
// 创建一个居中样式,用于表头
HSSFCellStyle style = workBook.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HSSFRow headRow = sheet.createRow(0);
for (int j = 0; j < xlsSheet.getHeads().length; j++) {
sheet.setColumnWidth(j, 4000);
HSSFCell cell = headRow.createCell(j);
cell.setCellValue(xlsSheet.getHeads()[j]);
cell.setCellStyle(style);
}
for (int j = 0; j < xlsSheet.getData().size(); j++) {
HSSFRow row = sheet.createRow(j+1);
Object[] objects = xlsSheet.getData().get(j);
for (int k = 0; k < objects.length; k++) {
HSSFCell cell = row.createCell(k);
Object o = objects[k];
//判断o的类型
if(o == null) {
cell.setCellValue("");
} else if(o instanceof Long) {
cell.setCellValue((Long)o);
} else if(o instanceof Integer) {
cell.setCellValue((Integer)o);
} else {
cell.setCellValue(o.toString());
}
}
}
}
return workBook;
}
}
XLSSheet
public class XLSSheet {
private String title = "";
private String[] heads = {};
private List<Object[]> data = new ArrayList<Object[]>();
public XLSSheet(String title, String[] heads, List<Object[]> data) {
this.title = title;
this.heads = heads;
this.data = data;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String[] getHeads() {
return heads;
}
public void setHeads(String[] heads) {
this.heads = heads;
}
public List<Object[]> getData() {
return data;
}
public void setData(List<Object[]> data) {
this.data = data;
}
}