Как добавить стрелку (из одной ячейки в другую) в Excel, используя openxml С#C#

Место общения программистов C#
Ответить
Anonymous
 Как добавить стрелку (из одной ячейки в другую) в Excel, используя openxml С#

Сообщение Anonymous »


Как добавить стрелку (straignConnectior) из одной ячейки в другую. Использование Openxml в C#. Мне разрешено использовать только Openxml.

Xml, созданный в файле Drawing.html, отличается от того, который я рисую непосредственно в Excel. Мне нужно нарисовать одну ячейку (например, A1) в другую (B1).

Я не смог найти ни одного примера в Интернете.
с использованием системы; использование System.Collections.Generic; используя System.Data.OleDb; используя System.Linq; использование System.Text; использование System.Threading.Tasks; используя DocumentFormat.OpenXml; использование DocumentFormat.OpenXml.Packaging; использование DocumentFormat.OpenXml.Spreadsheet; используя A = DocumentFormat.OpenXml.Drawing; используя Xdr = DocumentFormat.OpenXml.Drawing.Spreadsheet; классная программа { static void Main(string[] args) { AddArrowToFirstSheet("Путь к файлу"); } public static void AddArrowToFirstSheet (строка excelFilePath) { // Открываем документ электронной таблицы для редактирования используя (документ SpreadsheetDocument = SpreadsheetDocument.Open(excelFilePath, true)) { // Получаем часть книги DocumentFormat.OpenXml.Packaging.WorkbookPart workbookPart = document.WorkbookPart; // Получаем первую часть листа WorksheetPart worksheetPart = workbookPart.WorksheetParts.First(); // Создаем часть чертежей для рабочего листа, если она не существует DocumentFormat.OpenXml.Packaging.DrawingsPart DrawingsPart; если (worksheetPart.DrawingsPart == null) { DrawingsPart = worksheetPart.AddNewPart(); } еще { DrawingPart = рабочий листPart.DrawingsPart; } // Генерируем уникальный идентификатор связи для рисунка строка rId = worksheetPart.GetIdOfPart(drawingPart); // Создаем необходимые элементы для рисунка Xdr.WorksheetDrawing рабочий листDrawing; если (drawingsPart.WorksheetDrawing == null) { рабочий листDrawing = новый Xdr.WorksheetDrawing (); } еще { рабочий листDrawing = чертежиPart.WorksheetDrawing; } // Создаем якорь для стрелки Xdr.TwoCellAnchor twoCellAnchor = новый Xdr.TwoCellAnchor(); // Устанавливаем начальную и конечную позиции стрелки twoCellAnchor.FromMarker = новый Xdr.FromMarker { ColumnId = новый Xdr.ColumnId («1»), ColumnOffset = новый Xdr.ColumnOffset("0"), RowId = новый Xdr.RowId("1"), RowOffset = новый Xdr.RowOffset("0") }; twoCellAnchor.ToMarker = новый Xdr.ToMarker { ColumnId = новый Xdr.ColumnId («1»), ColumnOffset = новый Xdr.ColumnOffset("0"), RowId = новый Xdr.RowId("2"), RowOffset = новый Xdr.RowOffset("0") }; // Создаем фигуру и ее свойства Форма A.Shape = GenerateArrowShape(); // Создаем невизуальные свойства формы A.NonVisualShapeProperties nonVisualShapeProperties = новый A.NonVisualShapeProperties( новый A.NonVisualDrawingProperties {Id = 1U, Name = "Arrow1"}, новый A.NonVisualShapeDrawingProperties()); // Добавляем элементы в рисунок //A.Shape xdrShape = новая A.Shape //{ // NonVisualShapeProperties = nonVisualShapeProperties, // ShapeProperties = shape.ShapeProperties, // //TextBody = shape.TextBody //; //twoCellAnchor.Append(xdrShape); рабочий листDrawing.Append(twoCellAnchor); // Добавляем рисунок в часть рисунков чертежиPart.WorksheetDrawing = рабочий листDrawing; // Сохраняем изменения в табличном документе рабочая книгаЧасть.Рабочая книга.Сохранить(); } } // Функция для создания формы стрелки частный статический A.Shape GenerateArrowShape() { Форма A.Shape = новая A.Shape(); A.ShapeProperties shapeProperties = новый A.ShapeProperties(); Контур A.Outline = новый A.Outline(новый A.NoFill()); shapeProperties.Append(структура); A.PresetGeometry PresetGeometry = новый A.PresetGeometry {Preset = A.ShapeTypeValues.StraightConnector1}; shapeProperties.Append(presetGeometry); A.SolidFill SolidFill = новый A.SolidFill(); A.RgbColorModelHex rgbColorModelHex = новый A.RgbColorModelHex {Val = "FF0000" }; // Красный цвет SolidFill.Append(rgbColorModelHex); shapeProperties.Append(solidFill); shape.Append(shapeProperties); вернуть форму; } }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»