c#生成excel文件

来源:互联网 发布:屏蔽局域网监控软件 编辑:程序博客网 时间:2024/05/04 17:09

/// <summary>
    /// 创建excel管理类
    /// </summary>
    public class CreatExcel
    {
        public void GetCreatExcel(string TimeStart, string TimeEnd, DataTable AllMen, string startTimeYear, string waiChuTypeText, string vacationTypeText, string ReportName, string ReportType1, DataTable MainDataTable, DataTable JiaBanTiaoXiuDataTable, DataTable QingJiaDataTable, DataTable JiaBanDataTable, DataTable WaiChuDataTable)
        {
            BaseTimeManager BaseTimeManager1 = new BaseTimeManager();
           
            int i = 0;
            string str = null;
            switch (ReportType1)
            {
                case "Main":
                    #region
                    str += "/"" + " 员工编号" + "/"" + ",";
                    str += "/"" + "员工姓名" + "/"" + ",";
                    str += "/"" + "岗位" + "/"" + ",";
                    str += "/"" + "应勤天数(天)" + "/"" + ",";
                    str += "/"" + "实际出勤天数(天)" + "/"" + ",";
                    str += "/"" + "病假(天)" + "/"" + ",";
                    str += "/"" + "事假(天)" + "/"" + ",";
                    str += "/"" + "矿工(天)" + "/"" + ",";
                    str += "/"" + "年假(天)" + "/"" + ",";
                    str += "/"" + "婚/丧假(天)" + "/"" + ",";
                    str += "/"" + "产假(天)" + "/"" + ",";
                    str += "/"" + "公差(天)" + "/"" + ",";
                    str += "/"" + "倒休(天)" + "/"" + ",";
                    str += "/"" + "未打卡(天)" + "/"" + ",";
                    str += "/"" + "上岗/离职时间" + "/"" + ",";
                    str += "/"" + "特殊说明" + "/"";
                    str += "/r/n"; 
                    for (int j = 0; j < MainDataTable.Rows.Count; j++)
                    {
                        str += "/" " + MainDataTable.Rows[j]["PersonnelID"].ToString() + "/"" + ",";
                        str += "/" " + MainDataTable.Rows[j]["PersonnelName"].ToString() + "/"" + ",";
                        str += "/" " + MainDataTable.Rows[j]["PersonnelDuty"].ToString() + "/"" + ",";
                      
                        double BingJiaReportTatolTime = 0;
                        double ShiJiaReportTatolTime = 0;
                        double NianJiaReportTatolTime = 0;
                        double HunSangJiaReportTatolTime = 0;
                        double ChanJiaReportTatolTime = 0;
                        double GongChaiReportTatolTime = 0;
                        double TiaoXiuReportTatolTime = 0;
                        if (MainDataTable.Rows[j]["BingJiaReportTatolTime"].ToString() != "")
                        {
                            BingJiaReportTatolTime=double.Parse(MainDataTable.Rows[j]["BingJiaReportTatolTime"].ToString());
                        }
                        if (MainDataTable.Rows[j]["ShiJiaReportTatolTime"].ToString() != "")
                        {
                            ShiJiaReportTatolTime = double.Parse(MainDataTable.Rows[j]["ShiJiaReportTatolTime"].ToString());
                        } 
                        if (MainDataTable.Rows[j]["NianJiaReportTatolTime"].ToString() != "")
                        {
                            NianJiaReportTatolTime = double.Parse(MainDataTable.Rows[j]["NianJiaReportTatolTime"].ToString());
                        }
                        if (MainDataTable.Rows[j]["HunSangJiaReportTatolTime"].ToString() != "")
                        {
                            HunSangJiaReportTatolTime = double.Parse(MainDataTable.Rows[j]["HunSangJiaReportTatolTime"].ToString());
                        }
                        if (MainDataTable.Rows[j]["ChanJiaReportTatolTime"].ToString() != "")
                        {
                            ChanJiaReportTatolTime = double.Parse(MainDataTable.Rows[j]["ChanJiaReportTatolTime"].ToString());
                        }
                        if (MainDataTable.Rows[j]["GongChaiReportTatolTime"].ToString() != "")
                        {
                            GongChaiReportTatolTime = double.Parse(MainDataTable.Rows[j]["GongChaiReportTatolTime"].ToString());
                        }
                        if (MainDataTable.Rows[j]["TiaoXiuReportTatolTime"].ToString() != "")
                        {
                            TiaoXiuReportTatolTime = double.Parse(MainDataTable.Rows[j]["TiaoXiuReportTatolTime"].ToString());
                        }

 
                        util util1 = new util();
                        string startTimeYear1 = util1.GetFirstStr(TimeStart, "-");
                        string startTimeMonth = util1.GetLastStr(TimeStart, "-");
                        string endTimeYear = util1.GetFirstStr(TimeEnd, "-");
                        string endTimeMonth = util1.GetLastStr(TimeEnd, "-");
                        float WorkTimes = BaseTimeManager1.GetShouldWorkTime(int.Parse(startTimeYear1), int.Parse(startTimeMonth), int.Parse(endTimeYear), int.Parse(endTimeMonth));
 
                        double RealTime = WorkTimes - BingJiaReportTatolTime - ShiJiaReportTatolTime - NianJiaReportTatolTime - HunSangJiaReportTatolTime - ChanJiaReportTatolTime - GongChaiReportTatolTime - TiaoXiuReportTatolTime;
 
                        string DayTime = BaseTimeManager1.ConvertMinToDay(startTimeYear, Convert.ToDouble(WorkTimes));
                        str += "/" " + DayTime + "/"" + ",";
                      
                        str += "/" " +BaseTimeManager1.ConvertMinToDay(startTimeYear,RealTime)+"/"" + ",";

                        if (MainDataTable.Rows[j]["BingJiaReportTatolTime"].ToString() != "")
                        {
                            str += "/" " + BaseTimeManager1.ConvertMinToDay(startTimeYear, double.Parse(MainDataTable.Rows[j]["BingJiaReportTatolTime"].ToString())) + "/"" + ",";
                        }
                        else
                        {
                            str += "/" " + "/"" + ",";
                        }
                        if (MainDataTable.Rows[j]["ShiJiaReportTatolTime"].ToString() != "")
                        {
                            str += "/" " + BaseTimeManager1.ConvertMinToDay(startTimeYear, double.Parse(MainDataTable.Rows[j]["ShiJiaReportTatolTime"].ToString())) + "/"" + ",";
                        }
                        else
                        {
                            str += "/" " + "/"" + ",";
                        }
                        str += "/" " + "/"" + ",";
                        if (MainDataTable.Rows[j]["NianJiaReportTatolTime"].ToString() != "")
                        {
                            str += "/" " + BaseTimeManager1.ConvertMinToDay(startTimeYear, double.Parse(MainDataTable.Rows[j]["NianJiaReportTatolTime"].ToString())) + "/"" + ",";
                        }
                        else
                        {
                            str += "/" " + "/"" + ",";
                        }
                        if (MainDataTable.Rows[j]["HunSangJiaReportTatolTime"].ToString() != "")
                        {
                            str += "/" " + BaseTimeManager1.ConvertMinToDay(startTimeYear, double.Parse(MainDataTable.Rows[j]["HunSangJiaReportTatolTime"].ToString())) + "/"" + ",";
                        }
                        else
                        {
                            str += "/" " + "/"" + ",";
                        }
                        if (MainDataTable.Rows[j]["ChanJiaReportTatolTime"].ToString() != "")
                        {
                            str += "/" " + BaseTimeManager1.ConvertMinToDay(startTimeYear, double.Parse(MainDataTable.Rows[j]["ChanJiaReportTatolTime"].ToString())) + "/"" + ",";
                        }
                        else
                        {
                            str += "/" " + "/"" + ",";
                        }
                        if (MainDataTable.Rows[j]["GongChaiReportTatolTime"].ToString() != "")
                        {
                            str += "/" " + BaseTimeManager1.ConvertMinToDay(startTimeYear, double.Parse(MainDataTable.Rows[j]["GongChaiReportTatolTime"].ToString())) + "/"" + ",";
                        }
                        else
                        {
                            str += "/" " + "/"" + ",";
                        }
                        if (MainDataTable.Rows[j]["TiaoXiuReportTatolTime"].ToString() != "")
                        {
                            str += "/" " + BaseTimeManager1.ConvertMinToDay(startTimeYear, double.Parse(MainDataTable.Rows[j]["TiaoXiuReportTatolTime"].ToString())) + "/"" + ",";
                        }
                        else
                        {
                            str += "/" " + "/"" + ",";
                        }
                        str += "/" " + "/"" + ",";
                        str += "/" " + "/"" + ",";
                        str += "/" " + "/"";
                        str += "/r/n";
                    }
                    for (int j = 0; j <AllMen.Rows.Count; j++)
                    {
                        util util1 = new util();
                        string startTimeYear1 = util1.GetFirstStr(TimeStart, "-");
                        string startTimeMonth = util1.GetLastStr(TimeStart, "-");
                        string endTimeYear = util1.GetFirstStr(TimeEnd, "-");
                        string endTimeMonth = util1.GetLastStr(TimeEnd, "-");
                        float WorkTimes = BaseTimeManager1.GetShouldWorkTime(int.Parse(startTimeYear1), int.Parse(startTimeMonth), int.Parse(endTimeYear), int.Parse(endTimeMonth));
                        string DayTime = BaseTimeManager1.ConvertMinToDay(startTimeYear, Convert.ToDouble(WorkTimes));
          
                        str += "/" " + MainDataTable.Rows[j]["PersonnelID"].ToString() + "/"" + ",";
                        str += "/" " + MainDataTable.Rows[j]["PersonnelName"].ToString() + "/"" + ",";
                        str += "/" " + MainDataTable.Rows[j]["PersonnelDuty"].ToString() + "/"" + ",";
                        str += "/" " + DayTime.ToString() + "/"" + ",";
                        str += "/" " + DayTime.ToString() + "/"" + ",";
                        str += "/" " + "/"" + ",";
                        str += "/" " + "/"" + ",";
                        str += "/" " + "/"" + ",";
                        str += "/" " + "/"" + ",";
                        str += "/" " + "/"" + ",";
                        str += "/" " + "/"" + ",";
                        str += "/" " + "/"" + ",";
                        str += "/" " + "/"" + ",";
                        str += "/" " + "/"" + ",";
                        str += "/" " + "/"" + ",";
                        str += "/" " + "/"";
                        str += "/r/n";
                    }
                    #endregion
                    break;
                case "QingJia":
                    #region
                    str += "/" " + ReportName + " /"" + ",";
                    str += "/r/n";
                    str += "/"" + "请假类型" + "/"" + ",";
                    str += "/"" + "员工编号" + "/"" + ",";
                    str += "/"" + "员工名称" + "/"" + ",";
                    str += "/"" + "员工部门" + "/"" + ",";
                    str += "/"" + "员工职位" + "/"" + ",";
                    str += "/"" + "请假原因" + "/"" + ",";
                    str += "/"" + "请假开始时间" + "/"" + ",";
                    str += "/"" + "请假结束时间" + "/"" + ",";
                    str += "/"" + "主管审批" + "/"" + ",";
                    str += "/"" + "主管审批意见" + "/"" + ",";
                    str += "/"" + "总监审批" + "/"" + ",";
                    str += "/"" + "总监审批意见" + "/"" + ",";
                    str += "/"" + "请假天(小时)数" + "/"" + ",";
                    str += "/r/n";
                    for (i = 0; i < QingJiaDataTable.Rows.Count; i++)
                    {
                        str += "/"" + QingJiaDataTable.Rows[i]["TypeDescribe"].ToString() + "/"" + ",";
                        str += "/"" + QingJiaDataTable.Rows[i]["PersonnelID"].ToString() + "/"" + ",";
                        str += "/"" + QingJiaDataTable.Rows[i]["PersonnelName"].ToString() + "/"" + ",";
                        str += "/"" + QingJiaDataTable.Rows[i]["PersonnelDepartment"].ToString() + "/"" + ",";
                        str += "/"" + QingJiaDataTable.Rows[i]["PersonnelDuty"].ToString() + "/"" + ",";
                        str += "/"" + QingJiaDataTable.Rows[i]["VacReason"].ToString() + "/"" + ",";
                        str += "/"" + QingJiaDataTable.Rows[i]["VacStartTime"].ToString() + "/"" + ",";
                        str += "/"" + QingJiaDataTable.Rows[i]["VacEndTime"].ToString() + "/"" + ",";
                        str += "/"" + QingJiaDataTable.Rows[i]["DirectorApprove"].ToString() + "/"" + ",";
                        str += "/"" + QingJiaDataTable.Rows[i]["DirectorOpinion"].ToString() + "/"" + ",";
                        str += "/"" + QingJiaDataTable.Rows[i]["ManagerApprove"].ToString() + "/"" + ",";
                        str += "/"" + QingJiaDataTable.Rows[i]["ManagerOpinion"].ToString() + "/"" + ",";
                        if (QingJiaDataTable.Rows[i]["VacTotalTime"].ToString() != "")
                        {
                            str += "/"" + BaseTimeManager1.ConvertMinToDay(startTimeYear, double.Parse(QingJiaDataTable.Rows[i]["VacTotalTime"].ToString())) + "/"" + ",";
                        }
                        else
                        {
                            str += "/" " + "/"" + ",";
                        }
                        str += "/r/n";
                    }
                    #endregion
                    break;
                case "JiaBan":
                    #region
                    str += "/" " + ReportName + " /"" + ",";
                    str += "/r/n";
                    str += "/"" + "员工编号" + "/"" + ",";
                    str += "/"" + "员工名称" + "/"" + ",";
                    str += "/"" + "员工部门" + "/"" + ",";
                    str += "/"" + "员工职位" + "/"" + ",";
                    str += "/"" + "加班原因" + "/"" + ",";
                    str += "/"" + "开始时间" + "/"" + ",";
                    str += "/"" + "结束时间" + "/"" + ",";
                    str += "/"" + "主管审批" + "/"" + ",";
                    str += "/"" + "主管审批意见" + "/"" + ",";
                    str += "/"" + "总监审批" + "/"" + ",";
                    str += "/"" + "总监审批意见" + "/"" + ",";
                    str += "/"" + "加班天(小时)数" + "/"" + ",";
                    str += "/r/n";
                    for (i = 0; i < JiaBanDataTable.Rows.Count; i++)
                    {
                        str += "/"" + JiaBanDataTable.Rows[i]["PersonnelID"].ToString() + "/"" + ",";
                        str += "/"" + JiaBanDataTable.Rows[i]["PersonnelName"].ToString() + "/"" + ",";
                        str += "/"" + JiaBanDataTable.Rows[i]["PersonnelDepartment"].ToString() + "/"" + ",";
                        str += "/"" + JiaBanDataTable.Rows[i]["PersonnelDuty"].ToString() + "/"" + ",";
                        str += "/"" + JiaBanDataTable.Rows[i]["OverTimeReason"].ToString() + "/"" + ",";
                        str += "/"" + JiaBanDataTable.Rows[i]["StartTime"].ToString() + "/"" + ",";
                        str += "/"" + JiaBanDataTable.Rows[i]["EndTime"].ToString() + "/"" + ",";
                        str += "/"" + JiaBanDataTable.Rows[i]["DirectorApprove"].ToString() + "/"" + ",";
                        str += "/"" + JiaBanDataTable.Rows[i]["DirectorOpinion"].ToString() + "/"" + ",";
                        str += "/"" + JiaBanDataTable.Rows[i]["ManagerApprove"].ToString() + "/"" + ",";
                        str += "/"" + JiaBanDataTable.Rows[i]["ManagerOpinion"].ToString() + "/"" + ",";
                        if (JiaBanDataTable.Rows[i]["TotalTime"].ToString() != "")
                        {
                            str += "/"" + BaseTimeManager1.ConvertMinToDay(startTimeYear, double.Parse(JiaBanDataTable.Rows[i]["TotalTime"].ToString())) + "/"" + ",";
                        }
                        else
                        {
                            str += "/" " + "/"" + ",";
                        }
                        str += "/r/n";
                    }
                    #endregion
                    break;
                case "WaiChu":
                    #region
                    str += "/" " + ReportName + " /"" + ",";
                    str += "/r/n";
                    str += "/"" + "外出类型" + "/"" + ",";
                    str += "/"" + "员工编号" + "/"" + ",";
                    str += "/"" + "员工名称" + "/"" + ",";
                    str += "/"" + "员工部门" + "/"" + ",";
                    str += "/"" + "员工职位" + "/"" + ",";
                    str += "/"" + "外出原因" + "/"" + ",";
                    str += "/"" + "外出地点" + "/"" + ",";
                    str += "/"" + "外出开始时间" + "/"" + ",";
                    str += "/"" + "外出结束时间" + "/"" + ",";
                    str += "/"" + "主管审批" + "/"" + ",";
                    str += "/"" + "主管审批意见" + "/"" + ",";
                    str += "/"" + "总监审批" + "/"" + ",";
                    str += "/"" + "总监审批意见" + "/"" + ",";
                    str += "/"" + "外出天(小时)数" + "/"" + ",";
                    str += "/r/n";
                    for (i = 0; i < WaiChuDataTable.Rows.Count; i++)
                    {
                        str += "/"" + WaiChuDataTable.Rows[i]["OutTypeDescribe"].ToString() + "/"" + ",";
                        str += "/"" + WaiChuDataTable.Rows[i]["PersonnelID"].ToString() + "/"" + ",";
                        str += "/"" + WaiChuDataTable.Rows[i]["PersonnelName"].ToString() + "/"" + ",";
                        str += "/"" + WaiChuDataTable.Rows[i]["PersonnelDepartment"].ToString() + "/"" + ",";
                        str += "/"" + WaiChuDataTable.Rows[i]["PersonnelDuty"].ToString() + "/"" + ",";
                        str += "/"" + WaiChuDataTable.Rows[i]["OutReason"].ToString() + "/"" + ",";
                        str += "/"" + WaiChuDataTable.Rows[i]["OutAddress"].ToString() + "/"" + ",";
                        str += "/"" + WaiChuDataTable.Rows[i]["FactOutTime"].ToString() + "/"" + ",";
                        str += "/"" + WaiChuDataTable.Rows[i]["FactComeTime"].ToString() + "/"" + ",";
                        str += "/"" + WaiChuDataTable.Rows[i]["DirectorApprove"].ToString() + "/"" + ",";
                        str += "/"" + WaiChuDataTable.Rows[i]["DirectorOpinion"].ToString() + "/"" + ",";
                        str += "/"" + WaiChuDataTable.Rows[i]["ManagerApprove"].ToString() + "/"" + ",";
                        str += "/"" + WaiChuDataTable.Rows[i]["ManagerOpinion"].ToString() + "/"" + ",";
                        if (WaiChuDataTable.Rows[i]["RealTotalTime"].ToString() != "")
                        {
                            str += "/"" + BaseTimeManager1.ConvertMinToDay(startTimeYear, double.Parse(WaiChuDataTable.Rows[i]["RealTotalTime"].ToString())) + "/"" + ",";
                        }
                        else
                        {
                            str += "/" " + "/"" + ",";
                        }
                        str += "/r/n";
                    }
                    #endregion
                    break;
            }
            HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + ReportName + ".csv");
            HttpContext.Current.Response.Charset = "UTF-8";
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
            HttpContext.Current.Response.ContentType = "application/ms-excel";//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword
            HttpContext.Current.Response.Write(str);
            HttpContext.Current.Response.End();
        }
    }
 

原创粉丝点击