zoukankan      html  css  js  c++  java
  • C#调用Excel,拷贝图表到其他Excel文档中

     Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
                excel.Visible = blExcelVisible;//设置调用引用的 Excel文件是否可见
                excel.DisplayAlerts = false;
    
                Workbook workbook = excel.Workbooks.Open(strReportPath);
    
                Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[15];
    
                Workbook workbookDetail = excel.Workbooks.Open(strPath);
    
                Microsoft.Office.Interop.Excel.Worksheet WorksheetDetail = (Microsoft.Office.Interop.Excel.Worksheet)workbookDetail.Worksheets[15];
                //复制子文档的Worksheet到主文档去
                WorksheetDetail.Copy(worksheet);
    
                Microsoft.Office.Interop.Excel.Worksheet worksheetChart = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets["画图"];
           
            
    double left = 125; double top = 593; for (int i = 1; i < 13; i++) { //找到需要移动的图表 ChartObject chartObjectOld = (ChartObject)worksheetChart.ChartObjects("Char" + i); //left = chartObjectOld.Left; //top = chartObjectOld.Top; Chart chart = chartObjectOld.Chart; //移动Char图表 chart.Location(XlChartLocation.xlLocationAsObject, strReportName); //新图表实例化 Microsoft.Office.Interop.Excel.Worksheet worksheetChartSalt = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[strReportName]; ChartObject chartObject = (ChartObject)worksheetChartSalt.ChartObjects("Char" + i); //设置新图表位置 chartObject.Left = left; chartObject.Top = top; if (i % 2 == 0) { top = top + 175; left = left - 299; } else { left = left + 299; } } excel.DisplayAlerts = false; //删除图表 ((Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets["画图"]).Delete(); excel.DisplayAlerts = true;//workbook.SaveAs(strSavePath, Type.Missing, "", "", Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange, 1, false, Type.Missing, Type.Missing, Type.Missing); workbook.Save(); workbook.Close(false, System.Reflection.Missing.Value, Missing.Value); workbookDetail.Close(false, System.Reflection.Missing.Value, Missing.Value); excel.Workbooks.Close(); excel.Quit(); workbook = null; workbookDetail = null; worksheet = null; WorksheetDetail = null; worksheetChart = null; Kill(excel); GC.Collect();
  • 相关阅读:
    轻轻松松教你写日志-超级简单
    JAVA实现KNN分类
    怎样给filter加入自己定义接口
    设计模式之Visitor模式(笔记)
    Leet Code OJ 237. Delete Node in a Linked List [Difficulty: Easy]
    在C#中怎样推断线程当前所处的状态
    leetCode 83.Remove Duplicates from Sorted List(删除排序链表的反复) 解题思路和方法
    谈谈源码管理那点事儿(一)——源码管理十诫(转)
    安装gi的时候回退root.sh的运行
    Android开发学习之路--异步消息Handler,Message,Looper和AsyncTask之初体验
  • 原文地址:https://www.cnblogs.com/weifeng123/p/13710793.html
Copyright © 2011-2022 走看看