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


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

    作者:wpf之家
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    2星|《所有的工作都可以用一张纸画完》
    1星|《我怎么没想到》:古龙武侠小说风格,有故事没细节,没有实际的商业价值
    3星|《三联生活周刊》2017年45期:盒马鲜生四不像
    3星|《如何激励你的员工》:优秀的企业管理者擅长问问题
    Android 用MediaCodec实现视频硬解码(转)
    ISO/IEC 14496 文档内容简介, MPEG标准
    The h.264 Sequence Parameter Set
    World’s Smallest h.264 Encoder
    linux socket中的SO_REUSEADDR
    Bootstrap
  • 原文地址:https://www.cnblogs.com/wpf123/p/2347392.html
Copyright © 2020-2023  润新知