username@email.com
昨天 f0c21ec9c1e9c7cd5db58caeb760c7d7ca6df002
CY_ECommercePlatform/CY.WebForm/Pages/business/DeliverPlanDakaList.aspx.cs
@@ -18,6 +18,9 @@
using CY.SQLDAL;
using System.Data.SqlClient;
using CY.Infrastructure.Logging;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System.IO;
namespace CY.WebForm.Pages.business
{
@@ -115,7 +118,7 @@
                 this.txtCreatTimeend.Value,
                 this.selCarId.Value,
                this.txtCreater.Value,
                this.selClockType.Value
                ""
              );
            Database DC = new Database();
@@ -125,6 +128,104 @@
                List<OA_CorporateClientsContract> fileDataList = null;
                foreach (var oA_DriverRecord in oA_DriverRecords)
                {
                var oA_DriverRecord1 =    _oA_DriverRecordBLL.GetModelByTimeCarIDClockType(oA_DriverRecord.CreatTime, oA_DriverRecord.CarID, 2);
                    if (oA_DriverRecord1 != null)
                    {
                        oA_DriverRecord1.CreatTimeName = oA_DriverRecord1.CreatTime.ToString("yyyy-MM-dd HH:mm:ss");
                        if (string.IsNullOrEmpty(oA_DriverRecord1.MileageImg))
                        {
                            oA_DriverRecord1.MileageImgName = "";
                        }
                        else
                        {
                            oA_DriverRecord1.MileageImgName = "<img src=\"" + oA_DriverRecord1.MileageImg + "\" width=\"20\" height=\"20\" >";
                        }
                        string sqlStr1 = string.Format(@"     select * from  [dbo].[OA_attachment] where [OA_Id]='{0}' and [AttachmentType]=4 order by [CreateTime]   ", oA_DriverRecord1.Id);
                        SqlCommand myCmd1 = new SqlCommand(sqlStr1, DC.Connection);
                        //SqlDataAdapter myDa = new SqlDataAdapter(myCmd);
                        var a1 = myCmd1.ExecuteReader();
                        //myDa.Dispose();
                        fileDataList = new List<OA_CorporateClientsContract>();
                        OA_CorporateClientsContract Contract1;
                        var j = 1;
                        while (a1.Read())
                        {   //注意如何将每次读取到的记录添加到listbox1中(因为第一次做时出错了,嘿嘿)
                            Contract1 = new OA_CorporateClientsContract();
                            // Contract.Keyid = a.GetInt32(0);
                            //Contract.CorporateClientsid = a.GetGuid(1);
                            //Contract.CorporateClientsName = a.GetString(4);
                            Contract1.FileName = a1[4].ToString();
                            Contract1.PageCode = j;
                            Contract1.FilePath = a1.GetString(2);
                            // Contract.Remark = a.GetString(6);
                            j += 1;
                            fileDataList.Add(Contract1);
                        }
                        a1.Close();     //关闭sqldatareader
                        if (fileDataList.Count > 0)
                        {
                            oA_DriverRecord1.ZhuangcheImg = "<img src=\"" + fileDataList[0].FilePath + "\" width=\"20\" height=\"20\" >";
                        }
                        else
                        {
                            oA_DriverRecord1.ZhuangcheImg = "";
                        }
                        sqlStr1 = string.Format(@"     select * from  [dbo].[OA_attachment] where [OA_Id]='{0}' and [AttachmentType]=5 order by [CreateTime]   ", oA_DriverRecord1.Id);
                        myCmd1 = new SqlCommand(sqlStr1, DC.Connection);
                        //SqlDataAdapter myDa = new SqlDataAdapter(myCmd);
                        a1 = myCmd1.ExecuteReader();
                        //myDa.Dispose();
                        fileDataList = new List<OA_CorporateClientsContract>();
                        j = 1;
                        while (a1.Read())
                        {   //注意如何将每次读取到的记录添加到listbox1中(因为第一次做时出错了,嘿嘿)
                            Contract1 = new OA_CorporateClientsContract();
                            // Contract.Keyid = a.GetInt32(0);
                            //Contract.CorporateClientsid = a.GetGuid(1);
                            //Contract.CorporateClientsName = a.GetString(4);
                            Contract1.FileName = a1[4].ToString();
                            Contract1.PageCode = j;
                            Contract1.FilePath = a1.GetString(2);
                            // Contract.Remark = a.GetString(6);
                            j += 1;
                            fileDataList.Add(Contract1);
                        }
                        a1.Close();     //关闭sqldatareader
                        if (fileDataList.Count > 0)
                        {
                            oA_DriverRecord1.CarConditionImg = "<img src=\"" + fileDataList[0].FilePath + "\" width=\"20\" height=\"20\" >";
                        }
                        else
                        {
                            oA_DriverRecord1.CarConditionImg = "";
                        }
                        oA_DriverRecord.oA_DriverRecord = oA_DriverRecord1;
                    }
                    else
                    {
                        oA_DriverRecord.oA_DriverRecord = new OA_DriverRecord();
                    }
                    if (string.IsNullOrEmpty(oA_DriverRecord.MileageImg))
                    {
                        oA_DriverRecord.MileageImgName = "";
@@ -228,9 +329,103 @@
            UCPager1.AspNetPager.RecordCount = pa.RecordCount;
        }
        //查询事件
        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();
                pa.PageSize = 1000;
                pa.PageIndex = 1;
                IEnumerable<OA_DriverRecord> results = _oA_DriverRecordBLL.SelectModelPage(pa,
                this.txtCreatTimestart.Value,
                 this.txtCreatTimeend.Value,
                 this.selCarId.Value,
                this.txtCreater.Value,
                ""
              );
                // 创建工作簿
                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("里程(公里)");
                // 添加数据
                int rowIndex = 1;
                foreach (var oA_DriverRecord in results)
                {
                    IRow row = sheet.CreateRow(rowIndex++);
                    row.CreateCell(0).SetCellValue((rowIndex - 1).ToString());
                    row.CreateCell(1).SetCellValue(oA_DriverRecord.CarName);
                    row.CreateCell(2).SetCellValue(oA_DriverRecord.Creater);
                    row.CreateCell(3).SetCellValue(oA_DriverRecord.CreatTime.ToString("yyyy-MM-dd"));
                    row.CreateCell(4).SetCellValue(oA_DriverRecord.ClockTypeName);
                    row.CreateCell(5).SetCellValue(oA_DriverRecord.EmptyCause);
                    row.CreateCell(6).SetCellValue(oA_DriverRecord.CarCondition);
                    row.CreateCell(7).SetCellValue(oA_DriverRecord.Remark);
                    row.CreateCell(8).SetCellValue(oA_DriverRecord.Mileage.ToString());
                }
                // 将工作簿写入内存流
                using (var ms = new MemoryStream())
                {
                    workbook.Write(ms);
                    bt = ms.ToArray();
                }
            }
            catch (Exception e)
            {
                bt = null;
                // 记录日志
            }
            return bt;
        }
    }
}