Нужно скопировать содержимое List через буфер обмена в таблицу Excel. Пройдёт ли преобразование List в Datatable с последующей вставкой в таблицу? Или есть другие способы? Желательно с примером.
Я написал такой кусочек кода:
var data = Clipboard.GetDataObject();
foreach (var f in data.GetFormats())
Console.WriteLine(f);
Скопировал несколько ячеек в Excel в буфер обмена и запустил. Для Excel 2010 вывод получился такой:
EnhancedMetafile
System.Drawing.Imaging.Metafile
MetaFilePict
Bitmap
System.Drawing.Bitmap
System.Windows.Media.Imaging.BitmapSource
Biff12
Biff8
Biff5
SymbolicLink
DataInterchangeFormat
XML Spreadsheet
HTML Format
Text
UnicodeText
System.String
CSV
Rich Text Format
Embed Source
Object Descriptor
Link Source
Link Source Descriptor
Link
Format129
Т.е. из Excel данные можно вставить в одном из этих форматов, соответственно можно предположить, что и вставка в Excel может быть выполнена в одном из этих форматов. Проще всего сделать это в CSV, просто отделите свои элементы символом ; если их нужно разместить горизонтально или символом перевода строки, если вертикально.
Например:
List<int> list = new List<int> { 10, 15, 23, 17, -8, 999, 4, 0 };
Clipboard.SetData(DataFormats.CommaSeparatedValue, string.Join("\n", list));
Если после выполнения этого кусочка кода выполнить вставку в Excel, то вставится столбец чисел.
Обратите внимание, при использовании формата CSV и строковых данных, если строка содержит символ ;, то ее нужно обернуть в кавычки "...", если при этом в строке также содержатся символы кавычек, то их нужно будет продублировать: "...""...""..."
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости