Java使用poi组件导出excel报表,能导出excel报表的还可以使用jxl组件,但jxl想对于poi功能有限,jxl应该不能载excel插入浮动层图片,poi能很好的实现输出excel各种功能,介绍poi导出excel功能实现案例,算比较常用的功能实现以及导出excel需要注意的地方,采用的是poi-3.8-20120326.jar,poi-ooxml-3.8-20120326.jar,poi-scratchpad-3.8-20120326.jar
1.获取工作日
package com.zhangpan.util.holiday;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
* 1. 获取工作日期范围
* 2. 筛选出工作日(周六-周日不算)
* 3. 手动插入计算节假日:维护 【工作休息日】 && 【休息工作日】(比如假期周4~周6,那么周日要加班)
*/
public class ValidateHoliday {
public SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
public ValidateHoliday() {
}
public ValidateHoliday(boolean isShowConsole, String beginDate, String endDate) throws ParseException {
ValidateHoliday.isShowConsole = isShowConsole;
this.beginDate = formatter.parse(beginDate);
this.endDate = formatter.parse(endDate);
}
private static boolean isShowConsole = false;// 是否显示控制台
private Date beginDate;// 开始日期
private Date endDate; // 结束日期
private int workdaySum;// 工作日天数
private int holidaySum;// 休息日天数
public void setIsShowConsole(boolean flag) {
ValidateHoliday.isShowConsole = flag;
}
public void setBeginDate(Date beginDate) {
this.beginDate = beginDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public int getWorkdaySum() {
return workdaySum;
}
public int getHolidaySum() {
return holidaySum;
}
public static void ConsolePrint(String str) {
if (isShowConsole) {
System.out.print(str);
}
}
public static void ConsolePrintln(String str) {
if (isShowConsole) {
System.out.println(str);
}
}
/**
* 功能: 获取工作日 并标识 1工作日 | -1休息日
* 2017年9月1日下午3:43:37
* Author ZhangPan
*/
public List
getWorkingDay() {
ConsolePrintln("开始工作日筛选...");
// 用于存储工作日&工作标识的List
List
list = new ArrayList
();
Calendar start = Calendar.getInstance();
start.setTime(beginDate);
Calendar end = Calendar.getInstance();
end.setTime(endDate);
while (start.compareTo(end) <= 0) {
//获取星期标识周日 周一 周二 周三 周四 周六 1 2 3 4 5 6 7
int day = start.get(Calendar.DAY_OF_WEEK);
// 判断是否是周六周日 -1|1
int flag = (day == Calendar.SUNDAY || day =&