- Мое приложение генерирует некоторые табличные данные.
- Я хочу, чтобы пользователь мог запустить Excel и нажать «Вставить», чтобы поместить данные в виде ячеек в Excel.
- Windows принимает формат под названием «CommaSeparatedValue», который используется с ее API, поэтому это кажется возможным.
- Помещение необработанного текста в буфер обмена работает, а попытка использовать этот формат — нет.
- ПРИМЕЧАНИЕ. Я могу правильно извлечь данные CSV из буфера обмена, моя проблема заключается в вставке данных CSV в буфер обмена.
Clipboard.SetText()
Код: Выделить всё
System.Windows.Forms.Clipboard.SetText(
"1,2,3,4\n5,6,7,8",
System.Windows.Forms.TextDataFormat.CommaSeparatedValue
);
Код: Выделить всё
System.Windows.Forms.Clipboard.SetData(
System.Windows.Forms.DataFormats.CommaSeparatedValue,
"1,2,3,4\n5,6,7,8",
);
Обновление 1: обходной путь с использованием SetText()
Как показывает ответ BFree, SetText с TextDataFormat служит обходным решением
Код: Выделить всё
System.Windows.Forms.Clipboard.SetText(
"1\t2\t3\t4\n5\t6\t7\t8",
System.Windows.Forms.TextDataFormat.Text
);
Все еще любопытно, почему CommaSeparatedValue не работает.
Подробнее здесь: https://stackoverflow.com/questions/329 ... th-c-sharp
Мобильная версия