• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# 无边框窗体之窗体移动发布时间:2022-07-10
下一篇:
C#模拟Post和Get方式发送数据的技巧发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap