在用Excel作报表的时候,可能会碰到分页的情况,这样就要分成多个Sheet显示,如果要在每页都保留表头,就需要将第一页作为模板设计的表头部分拷贝到其他的Sheet上,这时就要用用到Excel中的单元格拷贝。
下面的代码说明如何一个Sheet上的选定内容拷贝到另一个Sheet上:
ThisApplication = new Excel.Application();
ThisWorkbook = ThisApplication.Workbooks.Open("z:\\Book1.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
ThisApplication.DisplayAlerts = false;
xlSheet = (Excel.Worksheet)ThisWorkbook.Worksheets.get_Item(1);
Excel.Range range = xlSheet.get_Range("A1", Type.Missing);
range.Value = "123";
Excel.Worksheet sheet1 = (Excel.Worksheet)ThisWorkbook.Worksheets.get_Item(2);
Excel.Range range1 = sheet1.get_Range("B1", Type.Missing);
range.Copy(range1);
ThisWorkbook.SaveAs("z:\\Book2.xls", Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange,
Type.Missing, Type.Missing, Type.Missing, Type.Missing);
可以看到,核心的代码是很简单的,就是选定一个源区域,然后指定另一个目标区域,调用源区域的Copy方法将内容整个复制到目标区域,但是你会发现是连单元格的格式等属性一并拷贝过去的,如果要只拷贝单元格中的文本呢?那就要用到windows剪贴板了:
xlSheet = (Excel.Worksheet)ThisWorkbook.Worksheets.get_Item(1);
Excel.Range range = xlSheet.get_Range("A1", Type.Missing);
range.Value = "123";
System.Windows.Forms.Clipboard.SetDataObject(range.Value.ToString());
Excel.Worksheet sheet1 = (Excel.Worksheet)ThisWorkbook.Worksheets.get_Item(2);
Excel.Range range1 = sheet1.get_Range("B1", Type.Missing);
sheet1.Paste(range1, false);
要注意的是,这种方式只能选一个单元格,复制一个,不能选定一批单元格进行复制。
上面的例子只给出了主要部分的代码,其他的像销毁Excel进程等操作请参考前面的几篇Excel作报表的随笔。
分享到:
相关推荐
C# 使用自定义DataGridView实现的报表设计器,可以自定义设置报表内容,合并表头,合并单元格,导出报表到Excel 和打印报表。
实例019 像Excel一样复制DataGridView中的单元格区域数据 69 实例020 DataGridView中单元格合并及添加、显示行号 74 实例021 从DataGridView控件中拖放数据到TreeView控件 78 第3章 图形图像及多媒体应用 ...
实例019 像Excel一样复制DataGridView中的单元格区域数据 69 实例020 DataGridView中单元格合并及添加、显示行号 74 实例021 从DataGridView控件中拖放数据到TreeView控件 78 第3章 图形图像及多媒体应用 ...
实例019 像Excel一样复制DataGridView中的单元格区域数据 69 实例020 DataGridView中单元格合并及添加、显示行号 74 实例021 从DataGridView控件中拖放数据到TreeView控件 78 第3章 图形图像及多媒体应用 ...
实例019 像Excel一样复制DataGridView中的单元格区域数据 69 实例020 DataGridView中单元格合并及添加、显示行号 74 实例021 从DataGridView控件中拖放数据到TreeView控件 78 第3章 图形图像及多媒体应用 ...
此源码是Cell组件超级报表模板设计器C#.Net源码示例。 Cell网站: Http://Www.Cellsoft.Cc/Cell/Index.Asp Cell组件下载地址: Http://Www.Cellsoft.Cc./GL_Down/2008121323980828.Exe 产品概述: Cell 组件适用...
此文件里面包含: 如何使用C#对Excel Exchange 进行操作。 Excel如何合并单元格。 如何让相Excel里面写数据 高级报表 总之值得拥有
第1章 c#语言及其开发环境 实例001 根据需要创建所需解决方案 实例002 统一窗体中控件的字体设置 实例003 设置程序代码行号 实例004 通过“格式”菜单布局窗体 实例005 为项目添加dll文件引用 实例006 为项目添加已...
本列子模拟了 aspose的导出 和合并 和设置单元格样式
由于项目需求,需要根据现有的word模板,进行批量生成word报表,为了方便,选用的是 NPOI (NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目)来实现。本次用的版本是NPOI 2.3.0.0,版本不同写法会有...
允许开发人员使用 C#、VB.NET 或 ASP.NET 来创建、添加、删除、重命名、编辑和移动工作表,开发人员还可以在多个充满数据的工作表之间进行复制、调换和合并操作。这个专业的 .NET Excel 类库嵌入了很多灵活显示工作...
1.采用行列式二维表格,能够灵活设定单元格属性,操作方式和Excel很相似; a.单元格宽度和高度、背景色、前景色、显示格式、格线设置等; b.字体类型、字体大小、字体粗细、斜体及下划线设置等; c.数据水平对齐...
1.采用行列式二维表格,能够灵活设定单元格属性,操作方式和Excel很相似; a.单元格宽度和高度、背景色、前景色、显示格式、格线设置等; b.字体类型、字体大小、字体粗细、斜体及下划线设置等; c.数据水平对齐...
11、全中文界面,针对中国式报表进行了很多专门实现,如:表格报表、财务金额线、大写金额、发票圈叉图标、负数红字、多层表头等。很多在国外报表工具中很难实现的功能都可以轻易实现。 12、提供丰富交互事件,轻松...
根据自己需求合并对应的单元格,自定义固定表头。
Grid++Report 报表组件适用于VB.NET、C#、VB、VC、Delphi、C++Builder、Foxpro(VFP)、易语言等一切支持 COM 的开发工具。除了提供报表的统计分析、打印、打印预览、数据导出等功能,还提供独有的报表查询显示功能,...
开发思想是把Excel中的常用元素(单元格、单元格集合、图片、Chart报表都封装成C#中的对象,完全的OO思想编成),可以制作出功能强大、美观的Excel报表……内附详细的帮助文档、几个Sample示例、Excel报表的示例。...
C#,EXCEL中合并单元格,Kill Excel Process,Visual C#的Excel编程,如何用C#在Excel中生成图表,使用C#进行Word 2002和Excel 2002编程,用C#快速往Excel写数据,在C#中利用Excel做高级报表)
华报智能报表工具(ReportAll)是开发人员最理想的报表工具,具有全新的设计思想,对中国式报表和很多复杂报表有很强的针对性,他将“对象摆放”类和“电子表格”类报表开发工具完美融合,使用种类丰富且功能强大的...
11、全中文界面,针对中国式报表进行了很多专门实现,如:表格报表、财务金额线、大写金额、发票圈叉图标、负数红字、多层表头等。很多在国外报表工具中很难实现的功能都可以轻易实现。 12、提供丰富交互事件,轻松...