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

  • 相关阅读:
    mxnet笔记
    8.1.18示例:使用forName()的扩展
    8.1.17使用1.2版本的用户自定义类装载器
    8.1.16 使用1.1版本的用户自定义类装载器
    8.1.13 _quick 指令
    8.1.12直接引用
    8.1.11编译时常量解析
    8.1.10装载约束
    8.1.8 解析CONSTANT_String_info入口
    8.1.7 解析CONSTANT_interfaceMethodref_info入口
  • 原文地址:https://www.cnblogs.com/dahuzizyd/p/Excel_cSharp_report_4.html
Copyright © 2011-2022 走看看