C # Excel AddChart - PullRequest
       23

C # Excel AddChart

0 голосов
/ 15 июля 2009

привет, я добавляю диаграмму, чтобы отличиться от c # следующим образом

 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

чтобы при перетаскивании диаграммы объекты диаграммы (например, над прямоугольником) двигались вместе с диаграммой ... и возможно ли сделать ее недоступной для редактирования? Большое спасибо!

1 Ответ

0 голосов
/ 15 июля 2009

Вы должны перейти в коллекцию 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);
        }
...