C#合并excel单元格,操作合并后的单元格 (winform导出excel)
2016-02-04 10:49
495 查看
我想合并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();//垃圾回收
}
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();//垃圾回收
}
相关文章推荐
- __15__C#基础的位运算
- C# 字符串乱码
- C#实现注册码 CPU序列号,生成机器码 生成注册码 判断是否注册
- C# 读取机器码,CPU序列号,生成注册码类(优化)
- _14__enum___Weekday得到某日的下一日(星期几)
- c# 邮件发送功能
- C# 实现 省市区三级联动(表中包含经纬度取自淘宝地址管理)
- c#,字典,Dictionary
- C#DateTime各种使用
- c# 写入数据到excel文件
- C#读写txt文件的两种方法介绍
- c#之简单工厂设计模式
- C#成神之路<8> C#引用数据类型详述
- C#基础总结——重载和重写(覆盖)
- 关于C#中timer类
- C#预处理器指令 ,你造吗??? (●'◡'●)
- c# 在windows服务中 使用定时器
- C# TableLayoutPanel 绘制边框,防闪屏
- C#怎么给PDF添加背景图片
- C#发送邮件-C#教程