169 похожих чатов

Кто-Нибудь работал с OpenXML? Если да, то какой самый элегантный

способ создавать узлы OpenXmlElement?

16 ответов

12 просмотров
SightRo- Автор вопроса

У большинства узлов есть конструктор, который принимает IEnumerable<OpenXmlElement>. При этом сам OpenXmlElement реализует IEnumerable<OpenXmlElement>. C# при вызове конструктора таким образом: new Run(new anotherElement()) cоздает массив из одного элемента. А F# кастует anotherElement в IEnumerable<OpenXmlElement>. Можно решить эту проблему, чтобы было не сильно больно?

SightRo- Автор вопроса
gsomix
Передавай массив из одного элемента?

Тогда каждый элемент еще нужно кастовать к OpenXmlElement. Когда элементов много, это прям не красиво становится.

SightRo- Автор вопроса
gsomix
В F# 6 вроде автоматически кастится?

Нет. У меня по крайней мере не работает.

gsomix
В F# 6 вроде автоматически кастится?

Если есть op_Implicit только по идее.

gsomix
Там же наследование.

А, тогда да, должен. Думал там что-то arbitrary.

SightRo- Автор вопроса

Возвращаясь к вчерашней проблема с OpenXml. Может есть красивый workaround? Я только додумался сделать extension, выглядит более менее, но большие куски форматируются отвратно.

SightRo- Автор вопроса
SightRo
screenshot Возвращаясь к вчерашней проблема с OpenXml. Может ...

Мне мой вариант нравится. Но Фантомас делает не очень красиво.

SightRo
screenshot

Ну так ты можешь сделать Append-based Ce

SightRo- Автор вопроса
IdiocyAcceptance
Ну так ты можешь сделать Append-based Ce

Пока пытаюсь разобраться как. По документации пока не очень понял, как свое ce писать.

Похожие вопросы

Обсуждают сегодня

Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
А чем вам питонисты не угодили?😂
.
79
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Всем здравствуйте! Я хотел узнать сколько стоит средняя месячная зарплата у Electron js разработчиков? Мне очень это важно и нужно, плиз помогите узнать эту инфу! Для Джунио...
U.K.
10
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
77
А дин типизация это хорошо или плохо?
Alexey
12
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Исходники плюс документация? Вы гоните)) демок хватит всем
zamtmn
11
Карта сайта