使用C#和Excel进行报表开发(4)

内容摘要:在用Excel作报表的时候,可能会碰到分页的情况,这样就要分成多个Sheet显示,如果要在每页都保留表头,就需要将第一页作为模板设计的表头部分拷贝到其他的Sheet上,这时就要用用到Excel中的单元格拷贝。

alimamal.php?i=mm_10002462_101523_2162579&u=http%3A%2F%2Ftech.ddvip.com%2F2007-11%2F119553935737741.html&w=336&h=280&re=1440x900&sz=36&r=http%3A%2F%2Ftech.ddvip.com%2Fsearch.php%3Fkey%3D%E6%8A%A5%E8%A1%A8%E5%BC%80%E5%8F%91&cg=a68121dab1e07a4979f51046dfcbfaf6&prn=51152046&cas=prn&cah=900&caw=1440&ccd=32&ctz=8&chl=0&cja=1&cpl=0&cmm=0&cf=9.0&sx=236&sy=814&cbw=780&cbh=2076

  在用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作报表的随笔。

转载于:https://www.cnblogs.com/right_forever/archive/2011/06/02/2068682.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值