码迷,mamicode.com
首页 > Windows程序 > 详细

asp.net api使用NPOI 导出xls

时间:2019-04-09 21:00:17      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:address   origin   ret   for   文件   attach   datetime   encode   ice   

 public HttpResponseMessage ExportSupportByIds(string ids)
        {
            List<int> idsIntList = new List<int>();
            var idsList = ids.Split(,).ToList();
            if (idsList == null)
                return CommonHelper.HttpResponseMessageJSON(new Response(ResponseCode.ReqInvalidParameter, "参数不能为空"));
            if (idsList.Count() <= 0)
                return CommonHelper.HttpResponseMessageJSON(new Response(ResponseCode.ReqInvalidParameter, "参数不能为空"));
            foreach (var item in idsList)
            {
                idsIntList.Add(Convert.ToInt32(item));
            }
            if (idsList == null)
                return CommonHelper.HttpResponseMessageJSON(new Response(ResponseCode.ReqInvalidParameter, "参数不能为空"));
            if (idsList.Count() <= 0)
                return CommonHelper.HttpResponseMessageJSON(new Response(ResponseCode.ReqInvalidParameter, "参数不能为空"));
            var list = new crowd_supportBLL().GetListModelByIds(idsIntList);
            if (list == null || list.Count() <= 0)
                return CommonHelper.HttpResponseMessageJSON(new Response(ResponseCode.RspEmpty, "数据为空"));
            var response = new HttpResponseMessage(HttpStatusCode.OK);
            response.Content = new StreamContent(new crowd_supportBLL().ExportSupport(list));
            response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
            var fileName = "聚好物项目支持列表" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
            response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
            {
                FileName = System.Web.HttpUtility.UrlEncode(fileName)
            };
            return response;
        }
 public MemoryStream ExportSupport(List<crowd_support_view_Paging_ViewModel> list)
        {
            //创建Excel文件的对象
            NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
            //添加一个sheet
            NPOI.SS.UserModel.ISheet sheet1 = book.CreateSheet("Sheet1");
            //获取list数据
            //List<TB_STUDENTINFOModel> listRainInfo = m_BLL.GetSchoolListAATQ(schoolname);
            //给sheet1添加第一行的头部标题
            NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0);
            row1.CreateCell(0).SetCellValue("订单编号");
            row1.CreateCell(1).SetCellValue("支持人");
            row1.CreateCell(2).SetCellValue("支持档次");
            row1.CreateCell(3).SetCellValue("支持数量");

            row1.CreateCell(4).SetCellValue("支持金额(元)");
            row1.CreateCell(5).SetCellValue("支付时间");
            row1.CreateCell(6).SetCellValue("订单状态");

            row1.CreateCell(7).SetCellValue("回报发货时间");

            row1.CreateCell(8).SetCellValue("收货人");
            row1.CreateCell(9).SetCellValue("收货地址");
            row1.CreateCell(10).SetCellValue("发票信息");
            row1.CreateCell(11).SetCellValue("快递公司");
            row1.CreateCell(12).SetCellValue("物流单号");
            //将数据逐步写入sheet1各个行
            for (int i = 0; i < list.Count(); i++)
            {
                NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + 1);
                rowtemp.CreateCell(0).SetCellValue(list[i].crowd_support_order); //订单编号
                rowtemp.CreateCell(1).SetCellValue(list[i].nickname); //支持人
                rowtemp.CreateCell(2).SetCellValue((double)list[i].level_amount); //支持档次
                rowtemp.CreateCell(3).SetCellValue(list[i].buy_num);//支持数量
                rowtemp.CreateCell(4).SetCellValue((double)list[i].payment_amount); //支持金额(元)
                rowtemp.CreateCell(5).SetCellValue(list[i].pay_time.ToString()); //支付时间
                switch (list[i].pay_status)
                {
                    case 0:
                        rowtemp.CreateCell(6).SetCellValue("未付款"); //订单状态
                        break;
                    case 1:
                        rowtemp.CreateCell(6).SetCellValue("已支付"); //订单状态
                        break;
                    case 2:
                        rowtemp.CreateCell(6).SetCellValue("已退款"); //订单状态
                        break;
                    case 3:
                        rowtemp.CreateCell(6).SetCellValue("已取消"); //订单状态
                        break;
                    default:
                        break;
                }
                rowtemp.CreateCell(7).SetCellValue(list[i].sendout_time.ToString()); //回报发货时间
                rowtemp.CreateCell(8).SetCellValue(list[i].consignee + "/" + list[i].consignee_tel); //收货人
                rowtemp.CreateCell(9).SetCellValue(list[i].consignee_address); //收货地址

                var invoice = "";
                //抬头 / 税号 / 公司地址 / 公司地址 / 开户账号 / 开户银行
                var invoice_str = list[i]?.invoice_str?.ToString();
                var invoice_code = list[i]?.invoice_code?.ToString();
                var invoice_address = list[i]?.invoice_address?.ToString();
                var invoice_account = list[i]?.invoice_account?.ToString();
                var invoice_bank = list[i]?.invoice_bank?.ToString();
                if (!string.IsNullOrWhiteSpace(invoice_str))
                {
                    invoice += invoice_str + "/";
                }
                if (!string.IsNullOrWhiteSpace(invoice_code))
                {
                    invoice += invoice_code + "/";
                }
                if (!string.IsNullOrWhiteSpace(invoice_address))
                {
                    invoice += invoice_address + "/";
                }
                if (!string.IsNullOrWhiteSpace(invoice_account))
                {
                    invoice += invoice_account + "/";
                }
                if (!string.IsNullOrWhiteSpace(invoice_bank))
                {
                    invoice += invoice_bank + "/";
                }
                rowtemp.CreateCell(10).SetCellValue(invoice?.ToString());  //发票信息
                rowtemp.CreateCell(11).SetCellValue(list[i]?.track_name?.ToString()); //快递公司
                rowtemp.CreateCell(12).SetCellValue(list[i]?.trackingorder?.ToString());  //物流单号

            }
            // 写入到客户端 
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            book.Write(ms);
            ms.Seek(0, SeekOrigin.Begin);
            return ms;
        }

 

asp.net api使用NPOI 导出xls

标签:address   origin   ret   for   文件   attach   datetime   encode   ice   

原文地址:https://www.cnblogs.com/ichengq/p/10679311.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!