簡體   English   中英

C#Excel中的傳奇

[英]c# excel legend

我正在使用vsto,以與Excel 2007合作...

讓我們考慮一下我有一個矩陣如下

     A    B    C
 1  10   11    12
 2  10   12    11
 3  11   10    12

我將始終讀取一些填充有隨機數的隨機矩陣... ex,而另一個條件是它們也將根據相同的數字隨機着色,例如ex。 在上述情況下,包含10個單元格的單元格將變為紅色,具有11個單元格的單元格將變為綠色,依此類推...

現在我必須在工作表上放置某種面板,該面板將顯示此類信息

rectangle with RED color  - 10
rectangle with GREEN color - 11
rectangle with BLUE color  - 12

我試圖用圖表來做,但是不幸的是沒有成功,... 我無法將這些信息放在一系列單元格上,這不是我要尋找的解決方案 ,...我必須將其放在某種面板上,這樣用戶就可以將面板拖到他們想要的任何位置。

我不知道該怎么做,請您能給我建議一種如何創建一種類型的面板並將該信息放到那里的方法...謝謝!

抱歉,我沒有提到這一點,我希望能夠在面板內部放置矩形,以便每當我移動面板時,面板的所有組件都應一起移動...我也不希望用戶能夠修改面板的內容。面板,他們只能只能移動面板...

僅對於文本,文本框可能會解決問題。

如果確實需要矩形,則可以構造幾個圖形對象:用於彩色矩形的填充矩形,用於描述的文本框和帶有白色背景的矩形(用作圖例的框架)。 繪制后,您可以對它們進行分組,這會將它們從用戶的POV變成單個對象。

這是我已轉換為C#並經過測試的MSDN的經過修改的示例:

Excel.Worksheet ex = (Excel.Worksheet)Application.ActiveSheet;
ex.Shapes.AddShape(Microsoft.Office.Core.MsoAutoShapeType.msoShapeIsoscelesTriangle, 10, 10, 100, 100).Name = "shpOne";
ex.Shapes.AddShape(Microsoft.Office.Core.MsoAutoShapeType.msoShapeIsoscelesTriangle, 150, 10, 100, 100).Name = "shpTwo";
ex.Shapes.AddShape(Microsoft.Office.Core.MsoAutoShapeType.msoShapeIsoscelesTriangle, 300, 10, 100, 100).Name = "shpThree";
object[] shapeArray = {"shpOne", "shpTwo", "shpThree"};
Excel.ShapeRange rng = ex.Shapes.get_Range(shapeArray);
Excel.Shape grp = rng.Group();

這將創建鏈接在一起的三個三角形-用戶可以將它們拖動為一個對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM