使用C#和Excel进行报表开发(四)-复制单元格

转载 2007年09月30日 10:05:00
在用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#和Excel进行报表开发(七)-设置单元格的显示格式

原文地址:http://www.cnblogs.com/dahuzizyd/archive/2007/04/11/CSharp_Excel_Report_Chart_All.html 整个系列均...

使用C#和Excel进行报表开发(八)-用程序绑定数据源

本文演示一个简单的办法,并使用程序将一个dataset中的内容填充到指定的格子中,目的是尽可能的通用,从而避免C#代码必须知道Excel文件中字段和内容的位置的情况。 先制作一个简单的Excel...

使用C#和Excel进行报表开发-生成统计图Chart

原文地址:http://www.opent.cn/a/094/1235.shtml有的Web项目选用Excel作为报表方案,在服务器端生成Excel文件,然后传送到客户端,由客户端进行打印。在国内的环...

使用POI对EXCEL进行单元格的合并

前段时间我们老大交给我一任务,就是让我使用POI将EXCEL中的单元格进行合并,于是我就使用了sheet.addMergedRegion(new Region(1,(short)2,5,(short)...

poi导出Excel报表多表头双层表头、合并单元格

效果图: controller层方法:   /**      *      * 导出Excel报表      * @param request      * @r...

struts2 配合jaxl 制作Excel模板做的报表[云少原创](有了它就不需要每一个单元格都要一个一个敲代码了哈哈)

一早上,刚刚把第二张表格模板做好了,我感觉这2天的辛苦没有白费,现在要是想做一个导出报表的事情只需要从数据库里面拿出数据然后将他们组装成一个DataModel这个对象就可以了,我一边说一边把代码拷贝出...

填报表导出excel非可写单元格锁定问题

 问题描述:   填报表单元格分为可写和不可写两种状态,当填报表在web上展现的时候可写单元格可以进行数据填报和修改,非可写单元格不可操作。 报表导出为excel时,润乾导出excel包默...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)