CY_ECommercePlatform/CY.WebForm/Pages/work/BaoxiaoFukuanList.aspx.cs
@@ -9,6 +9,9 @@
using CY.Model;
using CY.Infrastructure.Query;
using CY.Infrastructure.Common;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System.IO;
namespace CY.WebForm.Pages.work
{
@@ -224,5 +227,137 @@
        {
            BindList();
        }
        //查询事件
        protected void btn_Daochu_Click(object src, EventArgs e)
        {
            byte[] fileBytes = ExportToExcel();
            if (fileBytes != null)
            {
                Response.Clear();
                Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                Response.AppendHeader("Content-Disposition", "attachment; filename=报销付款导出.xlsx");
                Response.BinaryWrite(fileBytes);
                Response.End();
            }
            else
            {
                // 处理导出失败的情况
                Response.Write("导出失败,请稍后重试!");
            }
        }
        public byte[] ExportToExcel()
        {
            byte[] bt = null;
            try
            {
                Pagination pa = new Pagination();
                DateTime? beginTime = null;
                DateTime? endTime = null;
                pa.PageSize = 10000;
                pa.PageIndex = 1;
                var oA_WorkPlans = bll_OA_WorkPlanBll.SelectModelPage(pa, CurrentUser.MemberId, Guid.Empty, Guid.Empty, 3, 17, "", null, null, string.IsNullOrEmpty(this.txtRegTimeStart.Value) ? beginTime : Convert.ToDateTime(this.txtRegTimeStart.Value), string.IsNullOrEmpty(this.txtRegTimeEnd.Value) ? endTime : Convert.ToDateTime(this.txtRegTimeEnd.Value), this.txtPlanPeople.Value.Trim(), -1, 1, this.selEvaluationStatus.Value.ToInt32(), null, this.TxtRewardContent.Value.Trim(), this.txtPlanContent.Value.Trim());
                // 创建工作簿
                IWorkbook workbook = new XSSFWorkbook();
                ISheet sheet = workbook.CreateSheet("导出数据");
                // 创建表头
                IRow headerRow = sheet.CreateRow(0);
                headerRow.CreateCell(0).SetCellValue("编号");
                headerRow.CreateCell(1).SetCellValue("申请日期");
                headerRow.CreateCell(2).SetCellValue("报销单号");
                headerRow.CreateCell(3).SetCellValue("部门");
                headerRow.CreateCell(4).SetCellValue("姓名");
                headerRow.CreateCell(5).SetCellValue("科目");
                headerRow.CreateCell(6).SetCellValue("摘要");
                headerRow.CreateCell(7).SetCellValue("金额");
                headerRow.CreateCell(8).SetCellValue("付款状态");
                headerRow.CreateCell(9).SetCellValue("审批人1");
                headerRow.CreateCell(10).SetCellValue("审批时间1");
                headerRow.CreateCell(11).SetCellValue("审批结果1");
                headerRow.CreateCell(12).SetCellValue("审批人2");
                headerRow.CreateCell(13).SetCellValue("审批时间2");
                headerRow.CreateCell(14).SetCellValue("审批结果2");
                headerRow.CreateCell(15).SetCellValue("审批人3");
                headerRow.CreateCell(16).SetCellValue("审批时间3");
                headerRow.CreateCell(17).SetCellValue("审批结果3");
                // 添加数据
                int rowIndex = 1;
                foreach (var order in oA_WorkPlans)
                {
                    IRow row = sheet.CreateRow(rowIndex++);
                    row.CreateCell(0).SetCellValue((rowIndex-1).ToString());
                    row.CreateCell(1).SetCellValue(order.PlanStartTime.Value.ToString("yyyy-MM-dd HH:mm:ss"));
                    row.CreateCell(2).SetCellValue(order.EvaluationContent);
                    row.CreateCell(3).SetCellValue(order.DepartName);
                    row.CreateCell(4).SetCellValue(order.PlanPeople);
                    row.CreateCell(5).SetCellValue(order.RewardContent);
                    row.CreateCell(6).SetCellValue(order.PlanContent);
                    row.CreateCell(7).SetCellValue(order.PlanMoney.ToString());
                    row.CreateCell(8).SetCellValue(order.EvaluationStatusName);
                    var oA_WorkPlan_Shenpis = oA_WorkPlan_ShenpiBLL.GetModelByKaipiaoId(order.Keyid.Value).OrderBy(x => x.Keyid).ToList();
                    foreach (var a_WorkPlan_Shenpi in oA_WorkPlan_Shenpis)
                    {
                        var oA_Staff = oA_StaffBLL.GetModelByMemberId(a_WorkPlan_Shenpi.ApprovalStaffId);
                        if (oA_Staff != null)
                        {
                            a_WorkPlan_Shenpi.ApprovalStaffName = oA_Staff.Name;
                        }
                    }
                    if (oA_WorkPlan_Shenpis.Count > 0)
                    {
                        row.CreateCell(9).SetCellValue(oA_WorkPlan_Shenpis[0].ApprovalStaffName);
                        row.CreateCell(10).SetCellValue(oA_WorkPlan_Shenpis[0].ApprovalTime.Value.ToString("yyyy-MM-dd HH:mm:ss"));
                        row.CreateCell(11).SetCellValue(oA_WorkPlan_Shenpis[0].ApprovalStatusName);
                    }
                    if (oA_WorkPlan_Shenpis.Count > 1)
                    {
                        row.CreateCell(12).SetCellValue(oA_WorkPlan_Shenpis[1].ApprovalStaffName);
                        row.CreateCell(13).SetCellValue(oA_WorkPlan_Shenpis[1].ApprovalTime.Value.ToString("yyyy-MM-dd HH:mm:ss"));
                        row.CreateCell(14).SetCellValue(oA_WorkPlan_Shenpis[1].ApprovalStatusName);
                    }
                    if (oA_WorkPlan_Shenpis.Count > 2)
                    {
                        row.CreateCell(15).SetCellValue(oA_WorkPlan_Shenpis[2].ApprovalStaffName);
                        row.CreateCell(16).SetCellValue(oA_WorkPlan_Shenpis[2].ApprovalTime.Value.ToString("yyyy-MM-dd HH:mm:ss"));
                        row.CreateCell(17).SetCellValue(oA_WorkPlan_Shenpis[2].ApprovalStatusName);
                    }
                }
                // 将工作簿写入内存流
                using (var ms = new MemoryStream())
                {
                    workbook.Write(ms);
                    bt = ms.ToArray();
                }
            }
            catch (Exception e)
            {
                bt = null;
                // 记录日志
            }
            return bt;
        }
    }
}