使用java代码读取Excel文档并输出Excel文档案例

本文展示了如何使用Java代码读取考勤Excel文件,将数据封装为对象,处理后并输出新的Excel文档。提供了数据封装对象的示例,并提示代码具有针对性,实际使用时需按需求调整。
摘要由CSDN通过智能技术生成

使用java代码实现读取考勤Excel文档,封装成对象数据,并对对象数据进行处理并输出Excel文档,如下:

public class EmployeeExcelParser {
    private static final String EXCEL_XLS = "xls";
    private static final String EXCEL_XLSX = "xlsx";

    private static final long EIGHT_HOUSE_TIME = 8 * 60 * 60;//八小时
    private static final String START_HOUSE = "09:00:00";//上班
    private static final String END_HOUSE = "17:30:00";//下班

    public static void main(String[] args) {
        SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
        HashMap<String, Employee> employeeList = new HashMap<>();

        String filePath = "D://employee/微信考勤数据.xlsx";
        String finalXlsxPath = "D://employee/BU18工时计算结果.xlsx";

        try {
            // 同时支持Excel 2003、2007
            File excelFile = new File(filePath); // 创建文件对象
            checkExcelVaild(excelFile);
            Workbook workbook = getWorkbok(excelFile);

            int sheetCount = workbook.getNumberOfSheets(); // Sheet的数量,
            /**
             * 设置当前excel中sheet的下标:0开始
             */
            Sheet sheet1 = workbook.getSheetAt(0);	// // 获取第一页,工作日

            // 为跳过第一行目录设置count
            int count = 0;

            for (Row row : sheet1) {
                // 跳过第一行的目录
                if(count == 0){
                    count++;
                    continue;
                }
                // 如果当前行没有数据,跳出循环
                if(row.getCell(0).toString().equals("")){
                    return ;
                }
                Employee employee;
                //封装对象
                if(employeeList.containsKey(row.getCell(1).toString())){
                    employee = employeeList.get(row.getCell(1).toString());
                }else{
                    employee = new Employee();
                    employee.setName(row.getCell(0).toString());
                    employee.setSerial_number(row.getCell(1).toString());
                    employee.setSection(row.getCell(2).toString());
                    employee.setMonth(row.getCell(3).toString().substring(0,7));
                }

                employee.setSum_man_day(employee.getSum_man_day() + 1);//加一天
                employee.setSum_leave(
                        employee.getSum_leave() + Double.valueOf(row.getCell(12).toString()));//请假
                employee.setSum_absence(
                        employee.getSum_absence() + Double.valueOf(row.getCell(14).toString()));//缺勤


                long workTime = 0;//当天上班时长
                //正常计算时长
                workTime = workDuration(row.getCell(4), row.getCell(5));//签到时间 he 签退时间 ;

                if(workTime < 0){
                    //System.out.println(workTime);
                }
                workTime = workTime < 0 ? 0 : workTime;
                //判断是否迟到
                if (isEmpty(row.getCell(4)) || isEmpty(row.getCell(5)) || workTime < EIGHT_HOUSE_TIME) {//迟到状态,或早退状态
                    String state = row.getCell(10).toString();
                    if( "审批通
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
是的,可以使用Java读取Excel文件中的内容并将其输出。下面是一个简单的示例代码: ```java import java.io.File; import java.FileInputStream; import java.io.IOException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; public class ExcelReader { public static void main(String[] args) { try { // 指定Excel文件路径 String filePath = "path/to/your/excel/file.xlsx"; // 创建文件输入流 FileInputStream fis = new FileInputStream(new File(filePath)); // 使用WorkbookFactory创建Workbook对象,支持xls和xlsx格式 Workbook workbook = WorkbookFactory.create(fis); // 获取第一个Sheet页 Sheet sheet = workbook.getSheetAt(0); // 遍历Sheet页中的每一行 for (Row row : sheet) { // 遍历每一行中的每一列 for (Cell cell : row) { // 获取单元格的值并输出 System.out.print(cell.toString() + "\t"); } System.out.println(); } // 关闭文件输入流 fis.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 在上述代码中,首先需要指定Excel文件的路径。然后,创建一个文件输入流来读取Excel文件使用`WorkbookFactory.create()`方法可以根据文件内容自动选择创建`Workbook`对象的方式,支持同时读取xls和xlsx格式的文件。接下来,我们可以通过`Workbook`对象获取指定的Sheet页,并使用两层循环遍历每一行和每一列,读取输出单元格的值。最后,记得关闭文件输入流。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值