0

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

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

现在是否可以在上面的图表上添加让我们说矩形,例如

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

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

4

1 回答 1

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);
        }
于 2009-07-15T19:37:04.403 回答