创建excel文件
public static String createExcel(ArrayList<String> list, ArrayList<ArrayList<String>> DataList, String dateStr) {
// 创建一个excel文件
HSSFWorkbook workbook = new HSSFWorkbook();
// 创建一个excel的sheet(表)
HSSFSheet sheet = workbook.createSheet();
// 创建第一行
HSSFRow row0 = sheet.createRow(0);
// 设置首行行高
Row row = sheet.getRow(0);
row.setHeightInPoints(30);
// 创建第一列
HSSFCell cellTitle = row0.createCell(0);
// 合并单元格
CellRangeAddress cellRangeAddress = new CellRangeAddress(0, 0, 0, 4 + (list.size() - 5) * 2);// 起始行号,终止行号,
// 起始列号,终止列号
sheet.addMergedRegion(cellRangeAddress);
int j = 5;
for (int i = 0; i < list.size() - 5; i++) {
CellRangeAddress cellRangeAddress1 = new CellRangeAddress(1, 1, j + i, j + 1 + i);
sheet.addMergedRegion(cellRangeAddress1);
j++;
}
for (int i = 0; i < 5; i++) {
CellRangeAddress cellRangeAddress3 = new CellRangeAddress(1, 2, i, i);
sheet.addMergedRegion(cellRangeAddress3);
}
// 给第一个单元格赋值(标题行)
cellTitle.setCellValue(dateStr + "考勤签到记录表");
cellTitle.setCellStyle(getRow0Style(workbook));
// 创建第二行(列名行)
int t = 1;
HSSFRow row1 = sheet.createRow(1);
row1.setHeightInPoints(20);
for (int i = 0; i < list.size(); i++) {
HSSFCell cell1 = null;
// 循环创建第二行各列
if (i > 5) {
cell1 = row1.createCell(i + t);
t++;
} else {
cell1 = row1.createCell(i);
}
// 设置单元格数据类型
cell1.setCellType(HSSFCell.CELL_TYPE_STRING);
HSSFRichTextString text = null;
if (i < list.size()) {
text = new HSSFRichTextString(list.get(i));
// 给每列赋值
// System.out.println(text+"____"+i+"_________"+list.size());
cell1.setCellValue(text);
}
}
// 给单元格添加样式
for (int i = 0; i <= 4 + (list.size() - 5) * 2; i++) {
HSSFCell cell = row1.getCell(i);
if (cell == null) {
cell = row1.createCell(i);
cell.setCellValue("");
}
cell.setCellStyle(getStyle(workbook));
}
// 创建第三行(早上下午)
HSSFRow row3 = sheet.createRow(2);
row3.setHeightInPoints(15);
for (int i = 5; i <= 4 + (list.size() - 5) * 2; i++) {
HSSFCell cell = row3.createCell(i);
// 设置单元格数据类型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
if (i % 2 == 1) {
cell.setCellValue("早");
} else {
cell.setCellValue("晚");
}
}
// 给单元格添加样式
for (int i = 0; i <= 4 + (list.size() - 5) * 2; i++) {
HSSFCell cell = row3.getCell(i);
if (cell == null) {
cell = row3.createCell(i);
cell.setCellValue("");
}
cell.setCellStyle(getStyle3(workbook));
}
// 创建数据行
for (int k = 0; k < DataList.size(); k++) {
HSSFRow row2 = sheet.createRow(3 + k);
ArrayList<String> datArr = DataList.get(k);
row2.setHeightInPoints(20);
for (int i = 0; i < datArr.size(); i++) {
// 循环创建第三行各列
HSSFCell cell2 = row2.createCell(i);
// 设置单元格样式
cell2.setCellStyle(getStyle(workbook));
// 给每一列赋值
String str = datArr.get(i);
cell2.setCellValue(str);
}
}
sheet.autoSizeColumn((short) 0); // 调整第一列宽度
sheet.autoSizeColumn((short) 1); // 调整第二列宽度
sheet.autoSizeColumn((short) 2); // 调整第三列宽度
try { // 创建输出流
File file = new File("C:\\Work\\WeX5_3.8_BSBZB\\model\\UI2\\excel\\" + dateStr + ".xls");// official服务器path
// File file = new
// File("F:\\Wex5Project\\WeX5_3.8_1_beiSong\\model\\UI2\\excel\\" + dateStr +
// ".xls");//my path
FileOutputStream fileout = new FileOutputStream(file);
// 将excel写入输出流
workbook.write(fileout);
fileout.flush();
fileout.close();
System.out.println("创建完成!");
} catch (Exception e) {
e.printStackTrace();
}
// String fiel = "http://192.168.1.156:8181/x5/UI2/excel/" + dateStr +
// ".xls";//my path
/*official服务器path北送*/
String fiel = "http://111.198.48.184:8888/x5/UI2/excel/" + dateStr + ".xls";
return fiel;
}
-------------------------------------------------------------------------------------------------------------------------------------------------------- 目前的博客发表主要以记录笔记为主,可能部分内容有些浅显,望各路大牛勿喷,请您雅正