c#excel AddChart

时间:2009-07-15 18:32:07

标签: c# visual-studio-2008 vsto excel-2007

我正在将图表添加到c#中,如下所示

 Excel.Worksheet ws = 
           (Excel.Worksheet) Globals.ThisAddIn.GetActiveWorksheet();
 Excel.Shape chart = 
           (Excel.Shape) ws.Shapes.AddChart(Type.Missing,100,100,100,100);

现在可以在上面的图表上添加让我们说Rectangle,例如

 chart.Add(msoRectangle,100,100,100,100); // smth of this kind

这样当我拖动图表时,图表对象(例如矩形上方)将与图表一起移动......是否可以使其不可编辑?非常感谢!

1 个答案:

答案 0 :(得分:0)

您必须转到 Chart.Shapes 集合并添加新的矩形形状。 VSTO上没有很多文档,所以你只需要玩游戏。

Excel.Shape rectangle = (Excel.Shape)chart.Chart.Shapes.AddShape(Microsoft.Office.Core.MsoAutoShapeType.msoShapeRectangle, 5, 5, 50, 50);

现在,关于那个只读......我不确定你是否可以只保护图表,但你当然可以保护图表所在的整个工作表。

以下是如何使用密码保护您的工作表,这是一个完整的保护。

 //
 this.ProtectWorkSheet(ws);

 //helper method
 private void ProtectWorkSheet(Excel.Worksheet workSheet)
        {
            //protect sheet
            workSheet.Protect("yourpassword", true, true, true, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
        }