zoukankan      html  css  js  c++  java
  • 使用C#和Excel进行报表开发(四)-复制单元格

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

  • 相关阅读:
    《应用Yii1.1和PHP5进行敏捷Web开发》学习笔记(转)
    YII 小模块功能
    Netbeans代码配色主题大搜集
    opensuse 启动巨慢 解决方法 90s多
    opensuse 安装 网易云音乐 rpm netease music
    linux qq rpm deb opensuse
    openSUSE 安装 alien
    第一行代码 Android 第2版
    Android Studio AVD 虚拟机 联网 失败
    docker error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.29/containers/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuratio
  • 原文地址:https://www.cnblogs.com/dahuzizyd/p/Excel_cSharp_report_4.html
Copyright © 2011-2022 走看看