C#合并excel单元格,操作合并后的单元格 (winform导出excel)

我想合并 excel 单元格,但不光是行合并,或是列合并,而是其中既包含行合并又包含列合并(就是把列合并的单元格再行合并,反过来也是),比如我想把前三行合并成一个单元格怎么办?(前三行已经是列合并后的单元格啦)有高手么?指点一下~~
protected void AddExcel(DataSet ds)
  {
  DataTable dt = ds.Tables[0];
  //获取 excel 的文件名称(Guid是一个全球表示,使excel的文件名不同)
  string fileName = Guid.NewGuid() + ".xls";
  //初始化excel对象
  Excel.Application excel = new Excel.ApplicationClass();
  //Excel.Application excel1 = new Excel.ApplicationClass();
  //定义列
  int rowIndex = 5;
  //定义行
  int colIndex = 0;
  //开始添加
  excel.Application.Workbooks.Add(true);
  Excel.Range range = excel.get_Range(excel.Cells[1, 1], excel.Cells[2, 1]);
  //Excel.Range range1 = excel.get_Range(excel.Cells[2, 1], excel.Cells[3, 1]);
  //myrange.NumberFormatLocal = "asd";
  Excel.Workbooks workbooks = excel.Workbooks;
  Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
  Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];
  range.NumberFormatLocal = "@"; //设置单元格格式为文本   
    
   
  range = worksheet.get_Range("H4", "O4"); //获取Excel多个单元格区域:本例做为Excel表头   
    
  range.Merge(0); //单元格合并动作  
    
    
    
  Excel.Worksheet workSheet = (Excel.Worksheet)workbook.Worksheets[1];
  Excel.Range excelRange = workSheet.get_Range(workSheet.Cells[4, 1],workSheet.Cells[5, 1]);
  Excel.Range excelRange1 = workSheet.get_Range(workSheet.Cells[4, 2], workSheet.Cells[5, 2]);
  Excel.Range excelRange2 = workSheet.get_Range(workSheet.Cells[4, 3], workSheet.Cells[5, 3]);
  Excel.Range excelRange3 = workSheet.get_Range(workSheet.Cells[4, 4], workSheet.Cells[5, 4]);
  Excel.Range excelRange4 = workSheet.get_Range(workSheet.Cells[4, 5], workSheet.Cells[5, 5]);
  Excel.Range excelRange6 = workSheet.get_Range(workSheet.Cells[4, 6], workSheet.Cells[5, 6]);
  Excel.Range excelRange5 = workSheet.get_Range(workSheet.Cells[4, 7], workSheet.Cells[5, 7]);
    
  excelRange.Merge(excelRange.MergeCells);
  excelRange1.Merge(excelRange1.MergeCells);
  excelRange2.Merge(excelRange2.MergeCells);
  excelRange3.Merge(excelRange3.MergeCells);
  excelRange4.Merge(excelRange4.MergeCells);
  excelRange5.Merge(excelRange5.MergeCells);
  excelRange6.Merge(excelRange6.MergeCells);
  workSheet.get_Range("A1", "S1").Merge(workSheet.get_Range("A1", "O1").MergeCells);
  workSheet.get_Range("A2", "S2").Merge(workSheet.get_Range("A2", "O2").MergeCells);
  workSheet.get_Range("A3", "S3").Merge(workSheet.get_Range("A3", "O3").MergeCells);
    
  worksheet.Cells[2, 1] = "2010年第二季度产品质量定期监督检查动态监管档案表"; //Excel单元格赋值   
  worksheet.Cells[4, 1] = "序号";
  worksheet.Cells[4, 2] = "产品分类";
  worksheet.Cells[4, 3] = "企业名称";
  worksheet.Cells[4, 4] = "详细地址及邮政编码";
  worksheet.Cells[4, 5] = "企业负责人及联系电话";
  workSheet.Cells[4, 6] = "企业规模许可证书编号";
  workSheet.Cells[4, 7] = "生产状态及年产量";
  workSheet.Cells[4, 8] = "第二季度";
  workSheet.Cells[5, 8] = "抽检日期";
  workSheet.Cells[5, 9] = "承检机构";
  workSheet.Cells[5, 10] = "抽检样品名称及规格";
  workSheet.Cells[5, 11] = "产品生产日期批号";
  workSheet.Cells[5, 12] = "检验结果";
  workSheet.Cells[5, 13] = "整改复查后检验结果";
  workSheet.Cells[5, 14] = "此类产品总体合格率";
    
    
    
    
  //向Excel表格中添加数据
  foreach (DataRow row in dt.Rows)
  {
  rowIndex++;
  colIndex = 0;
  for (colIndex = 0; colIndex < dt.Columns.Count; colIndex++)
  {
  excel.Cells[rowIndex, colIndex + 1] = row[colIndex].ToString();
  }
  }
  //导出表格后是否打开,(false)为不打开 (true)为打开
  excel.Visible = false;
  //保存路径(不可以自己更改路径)
  //excel.ActiveWorkbook.SaveAs(fileName, Excel.XlFileFormat.xlExcel9795, null, null, false, false, Excel.XlSaveAsAccessMode.xlNoChange, null, null, null, null, null);
  //保存文件(可以自己更改路径)
  excel.Save(fileName);
  //关闭excel
  excel.Quit();
  //清空excel中的内容
  excel = null;
  GC.Collect();//垃圾回收  
  }
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值