C#合并excel单元格,操作合并后的单元格,先合并行,再和并列或者先合并列再合并行。

zhaodexun_50 2010-05-13 05:51:32
我想合并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();//垃圾回收
}
...全文
2149 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
skep99 2010-05-17
  • 打赏
  • 举报
回复
个人主页上有的
qq 2387143
zhaodexun_50 2010-05-17
  • 打赏
  • 举报
回复
谢谢啦 交个朋友吧 能不能留个联系方式 qq 或者邮箱什么的。以后有问题请教你。
skep99 2010-05-13
  • 打赏
  • 举报
回复
range = worksheet.get_Range("H4", "I5");//坐标值选左上角和右下角的区域

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧