• Exel 利用模板导出方法


        #region Exel导出方法
            [MaxuniAuthAttribute(Roles = "sysroles")]
            public void OrderExport(string id)
            {
                string strWhere = " from VOutProceExel where OProcessRequisitionId='" + id + "'";
                var obj = objBaseRepository.GetOneRecord(id);//数据库,表里的信息
                var objlist = objVOutProceExelRepository.GetAll(strWhere);//要导出的视图信息
                string path = Server.MapPath("~/exceltemplate/XX合同.xls");//模板
                FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read);//用模板导出
    
    
    
                string suppliercontactperson1 = "";
                string supplierName = "";
                string supplierpaymentType = "";
                string suppliertel = "";
                string supplierfax = "";
                string supplierOrderNo = "";
                GetSupplierinfo(id, out  suppliercontactperson1, out  supplierName, out  supplierpaymentType, out  suppliertel, out  supplierfax, out  supplierOrderNo);
    
                string CompayName = "";
                string address = "";
                string tel = "";
                string fax = "";
                string homepage = "";
                string email = "";
                GetCompanyAddres(out  CompayName, out  address, out  tel, out  fax, out  homepage, out  email);
    
                IWorkbook hssfworkbook = WorkbookFactory.Create(file);//创建Execl
                ICellStyle style = hssfworkbook.CreateCellStyle();
                ISheet sheetk3 = hssfworkbook.GetSheet("inquiry");//导出的Execl里的工作表名称,一定要一致
    
                sheetk3.DefaultColumnWidth = 200 * 20;
                sheetk3.DefaultRowHeightInPoints = 1000;
                sheetk3.DisplayGridlines = true;
    
    
                style.BorderBottom = BorderStyle.THIN;
                style.BorderLeft = BorderStyle.THIN;
                style.BorderRight = BorderStyle.THIN;
                style.BorderTop = BorderStyle.THIN;
                int count = objlist.Count;
                
                //
                IRow row1 = sheetk3.GetRow(2);//.GetRow(2)代表Execl模板里的行数,2代表第二行
                row1.GetCell(0).SetCellValue("甲方(委托方):XX有限公司");//.GetCell(0)代表Execl模板里的列数,0代表第一列
                row1.GetCell(5).SetCellValue(obj.contractNO);//.GetCell(5)代表Execl模板里的列数,5代表第五列
    
                IRow row2 = sheetk3.GetRow(3);//代表Execl模板里的行数,3代表第三行
                row2.CreateCell(0).SetCellValue("乙方(加工方):");
                row2.CreateCell(2).SetCellValue(obj.supplierName);//
    
                IRow row3 = sheetk3.GetRow(6);//.GetRow(6)代表Execl模板里的行数,6代表第6行
                row3.CreateCell(0).SetCellValue("一、内容:");
    
    
                for (int i = 0; i < count; i++)
                {
                    IRow row = sheetk3.CreateRow(7 + i);//添加序列号,从第7行开始加,加到i行
                    row.CreateCell(0).SetCellValue(i + 1);
                    row.CreateCell(1).SetCellValue(objlist[i].mouldNo);
                    row.CreateCell(2).SetCellValue(objlist[i].partName);
                    row.CreateCell(3).SetCellValue(objlist[i].drawingNo);
                    row.CreateCell(4).SetCellValue(objlist[i].OutTypeName);
                    row.CreateCell(5).SetCellValue(objlist[i].qty);
                    row.CreateCell(6).SetCellValue(objlist[i].processRemark);
                    row.CreateCell(7).SetCellValue(objlist[i].Price);
                    row.CreateCell(8).SetCellValue(objlist[i].TotaPricel);
                    row.CreateCell(9).SetCellValue(objlist[i].oendDate == null ? "" : objlist[i].oendDate.Value.ToString("yyyy-MM-dd"));
    
                    row.Cells[0].CellStyle = style;
                    row.Cells[1].CellStyle = style;
                    row.Cells[2].CellStyle = style;
                    row.Cells[3].CellStyle = style;
                    row.Cells[4].CellStyle = style;
                    row.Cells[5].CellStyle = style;
                    row.Cells[6].CellStyle = style;
                    row.Cells[7].CellStyle = style;
                    row.Cells[8].CellStyle = style;
                    row.Cells[9].CellStyle = style;
    
                }
    
                IRow row4 = sheetk3.GetRow(29);
                string strdiscount = "";
                if (obj.discount == 100)
                    strdiscount = "";
                else
                    strdiscount = "折扣:" + obj.discount + "%";
                row4.GetCell(8).SetCellValue(obj.discountPrice.ToString());
                row4.GetCell(9).SetCellValue(strdiscount);
    
                IRow row5 = sheetk3.GetRow(49);
                row5.GetCell(1).SetCellValue("付款方式:" + supplierpaymentType);
    
                IRow row6 = sheetk3.GetRow(56);
                row6.GetCell(2).SetCellValue(obj.outUserName);
    
    
    
                MemoryStream ms = new MemoryStream();
                hssfworkbook.Write(ms);//
                Response.ContentType = "application/vnd.ms-excel";
                if (obj.contractNO == null)
                {
                    Response.AddHeader("Content-Disposition", string.Format("attachment;filename=inquiry.xls"));
                }
                else
                {
                    Response.AddHeader("Content-Disposition", string.Format("attachment;filename=" + obj.contractNO + ".xls"));
                }
                Response.BinaryWrite(ms.ToArray());
                Response.End();
                hssfworkbook = null;
                ms.Close();
                ms.Dispose();
    
            }
            #endregion
    
            #region 公司地址及详细信息
            private void GetCompanyAddres(out string CompayName, out string address, out string tel, out string fax, out string homepage, out string email)
            {
                var model = objCompayRepositoryRepository.GetAll();
                CompayName = "";
                address = "";
                tel = "";
                fax = "";
                homepage = "";
                email = "";
                if (model.Count > 0)
                {
                    CompayName = model[0].CompayName;
                    address = model[0].address;
                    tel = model[0].tel;
                    fax = model[0].fax;
                    homepage = model[0].homepage;
                    email = model[0].email;
                    //ViewData["companyname"] = model[0].CompayName;
                    //ViewData["address"] = model[0].address;
                    //ViewData["tel"] = model[0].tel;
                    //ViewData["fax"] = model[0].fax;
                    //ViewData["homepage"] = model[0].homepage;
                    //ViewData["email"] = model[0].email;
                }
            }
            #endregion
    
            #region 供应商地址级详细信息 合同条约
    
    
            private void GetSupplierinfo(string id, out string suppliercontactperson1, out string supplierName, out string supplierpaymentType, out string suppliertel, out string supplierfax, out string supplierOrderNo)
            {
                OProcessRequisition objOrderApply = objBaseRepository.GetOneRecord(id);
                string strSupplierid = objOrderApply.supplierID;
                Supplier objsupplier = new Supplier();
                if (!string.IsNullOrEmpty(strSupplierid))
                    objsupplier = objSupplierRepository.GetOneRecord(strSupplierid);
    
                suppliercontactperson1 = objsupplier.contactperson1;
                supplierName = objsupplier.supplierName;
                supplierpaymentType = objsupplier.paymentType + ";税率:" + objsupplier.taxRate;
                suppliertel = objsupplier.tel;
                supplierfax = objsupplier.fax;
                supplierOrderNo = objOrderApply.contractNO;
    
                IList<OrderCond> objordercond = objOrderCondRepository.GetAll("from OrderCond where  TypeNo=1").OrderBy(o => o.SortId).ToList();
                //var objplaymenthod = objordercond.FirstOrDefault(o => o.SortId ==6);
                //var obj = objplaymenthod;
                //objordercond.Remove(objplaymenthod);
                //obj.CondContent = objplaymenthod.CondContent.Replace(":", "").Replace(":", "") + ":" + objsupplier.paymentType + ";税率:" + objsupplier.taxRate;
                //objordercond.Insert(11, obj);
                ViewData["allcond"] = objordercond;
            }
            #endregion
  • 相关阅读:
    淘宝nginx的学习使用,安装及反向代理,负载均衡
    Linux5
    Linux4
    Linux权限相关及yum源的配置
    linux基本命令及python3的环境配置
    使用Guava RateLimiter限流
    Runnable与Callable 区别
    [Kafka] 如何保证消息不丢失
    [多线程] 等待所有任务执行完成
    [Docker] 快速安装mysql
  • 原文地址:https://www.cnblogs.com/liuwj/p/3421409.html
Copyright © 2020-2023  润新知