c# epplus 合并单元格

   using (var package = new ExcelPackage(new FileInfo(excel保存地址)))
   {   // 检查工作簿中是否存在同名的工作表
    
       var worksheet = package.Workbook.Worksheets.Add("Sheet1");
       row位置 = 2;
       int 上行号 = 2;
       int 上行号2 = 2;
       int 现在 = 1;
       while (Sdr.Read())
   {
          
      
           for (int i = 0; i < Sdr.FieldCount; i++)
       {
               char letter = (char)('A' + i);
               if (row位置 == 2)
               { worksheet.Cells[letter + 1.ToString()].Value = Sdr.GetName(i); }
               worksheet.Cells[letter+ row位置.ToString()].Value = Sdr[i];


           }
       string 现在图号 = Sdr[1].ToString();
       string 现在名称 = Sdr[2].ToString();
           string 现在数字= Sdr[8].ToString();

           if (row位置 != 2)
       {
               Debug.WriteLine("上行号:" + 上行号 + ",row位置:" + row位置);
               Debug.WriteLine("上名称:" + 上名称 + ",现在名称:" + 现在名称);
               Debug.WriteLine("现在图号:" + 现在图号 + ",上图号:" + 上图号 );
               if ((现在图号 == 上图号)) {
                   { 
                      
                   string 范围 = "B" + 上行号 + ":" + "B" + (row位置);
                       Debug.WriteLine("范围:" + 范围);
                       worksheet.Cells[范围].Merge = true;
                   worksheet.Cells[范围].Style.VerticalAlignment = ExcelVerticalAlignment.Top;
                   worksheet.Cells[范围].Style.HorizontalAlignment = ExcelHorizontalAlignment.Left;
                   }
                  
                  
               }
           if(现在图号 == 上图号&&现在名称 == 上名称)
               { { 
                   string 范围 = "C" + 上行号 + ":" + "C" + (row位置 );
                   worksheet.Cells[范围].Merge = true;
                   worksheet.Cells[范围].Style.VerticalAlignment = ExcelVerticalAlignment.Top;
                   worksheet.Cells[范围].Style.HorizontalAlignment = ExcelHorizontalAlignment.Left;
                      



                   }


               }
               if (上数字 == 现在数字 && 上行号2 != 2)
               {
                   {
                       string 范围 = "I" + 上行号2 + ":" + "I" + (row位置);
                       Debug.WriteLine("范围:" + 范围);
                       worksheet.Cells[范围].Merge = true;
                       worksheet.Cells[范围].Style.VerticalAlignment = ExcelVerticalAlignment.Top;
                       worksheet.Cells[范围].Style.HorizontalAlignment = ExcelHorizontalAlignment.Left;

                       worksheet.Cells[范围].Value = 现在;


                   }



               }
             
               if (现在名称 != 上名称) { 上行号 = row位置; }
               if (上数字 != 现在数字) { 上行号2 = row位置; 现在++;
                   string 范围 = "I" + row位置 + ":" + "I" + (row位置);
                   worksheet.Cells[范围].Value = 现在;
                   worksheet.Cells[范围].Style.VerticalAlignment = ExcelVerticalAlignment.Center;
                   worksheet.Cells[范围].Style.HorizontalAlignment = ExcelHorizontalAlignment.Left;
               }
           }
       
           上图号 = 现在图号;
              
               上名称 = 现在名称;
               上数字 = 现在数字;



           // 每条记录之间添加分隔,可选
           row位置++;
       }
       if (row位置 == 2) { 
     
           return "";
       }
       worksheet.Cells["I1:I1"].Value = "";
       worksheet.Cells["I2:I2"].Value = "1";
       worksheet.Cells["I2:I2"].Style.VerticalAlignment = ExcelVerticalAlignment.Center;
       worksheet.Cells["I2:I2"].Style.HorizontalAlignment = ExcelHorizontalAlignment.Left;
       worksheet.Cells["A2:A"+ (row位置-1)].Merge = true;
       worksheet.Cells["A2:A" + (row位置 -1)].Style.VerticalAlignment = ExcelVerticalAlignment.Top;
       worksheet.Cells["A2:A" + (row位置 -1)].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
       worksheet.Column(1).Width = 20;
       worksheet.Column(2).Width = 18;
       worksheet.Column(3).Width = 29;
       worksheet.Column(4).Width = 5;
       worksheet.Column(5).Width =12;
       worksheet.Column(6).Width = 15;
       worksheet.Column(7).Width = 7;
       worksheet.Column(8).Width = 14;
       worksheet.Column(9).Width = 3;
       worksheet.Cells["A1:" + "I" + (row位置-1)].Style.Border.Top.Style = ExcelBorderStyle.Thin;
       worksheet.Cells["A1:" + "I" + (row位置 -1)].Style.Border.Bottom.Style = ExcelBorderStyle.Thin;
       worksheet.Cells["A1:" + "I" + (row位置 -1)].Style.Border.Left.Style = ExcelBorderStyle.Thin;
       worksheet.Cells["A1:" + "I" + (row位置 -1)].Style.Border.Right.Style = ExcelBorderStyle.Thin;
      
       
       worksheet.InsertRow(1, 1);
       worksheet.Cells["A1:H1"].Merge = true;
       worksheet.Cells["A1:H1"].Value = 订单号+"    "+工艺;
       worksheet.Cells["A1:H1"].Style.VerticalAlignment = ExcelVerticalAlignment.Center;
       worksheet.Cells["A1:H1"].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
    
       worksheet.Cells["A1:H1"].Style.Font.Size = 20;
         worksheet.Row(1).Height = 30;
       package.Save();
   }
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值