Как вставить данные CSV к Windows Clipboard с C#

Дополнительный ответ через 3 года, конечно, если какой-либо предыдущий не работает для вас, потому что «что-то».

  • Перейти к пути к проекту> где вы обнаружили java-файлы и пакет
  • Создайте новые папки, например com> super_package> действия
  • Android Studio обновит структуру проекта
  • Переместите все файлы Java в новые папки
  • Удалите старые папки
  • Изменить> Найти> Заменить в пути:
  • изменить имя старого пакета на новый
  • изменить также в манифесте и построить граду [

Готово!

28
задан namenlos 1 December 2008 в 06:06
поделиться

3 ответа

Места Платформы.NET DataFormats.CommaSeparatedValue на буфере обмена как текст Unicode. Но, как упомянуто в http://www.syncfusion.com/faq/windowsforms/faq_c98c.aspx#q899q , Excel ожидает, что данные CSV будут потоком памяти UTF-8 (трудно сказать или.NET, или Excel виновным в несовместимости).

решение, которое я предложил в своем собственном приложении, состоит в том, чтобы поместить две версии табличных данных на буфере обмена одновременно как разделенный текст вкладки и как поток памяти CSV. Это позволяет целевому приложению получать данные в своем предпочтительном формате. Блокнот и Excel предпочитают разделенный текст вкладки, но можно вынудить Excel захватить данные CSV через Вставку, Особенную... управляют для тестирования.

Вот некоторый пример кода (обратите внимание, что WinForms-эквиваленты от пространств имен WPF используются здесь):

// Generate both tab-delimited and CSV strings.
string tabbedText = //...
string csvText = //...

// Create the container object that will hold both versions of the data.
var dataObject = new System.Windows.DataObject();

// Add tab-delimited text to the container object as is.
dataObject.SetText(tabbedText);

// Convert the CSV text to a UTF-8 byte stream before adding it to the container object.
var bytes = System.Text.Encoding.UTF8.GetBytes(csvText);
var stream = new System.IO.MemoryStream(bytes);
dataObject.SetData(System.Windows.DataFormats.CommaSeparatedValue, stream);

// Copy the container object to the clipboard.
System.Windows.Clipboard.SetDataObject(dataObject, true);
34
ответ дан user46432 14 October 2019 в 11:20
поделиться

Используйте вкладки вместо запятых. т.е.:

Clipboard.SetText("1\t2\t3\t4\t3\t2\t3\t4", TextDataFormat.Text);

Просто протестировал это самостоятельно, и это работало на меня.

6
ответ дан BFree 14 October 2019 в 11:20
поделиться

Я успешно вставил в Excel, используя \ t (см. Ответ BFree) в качестве разделителей столбцов и \ n в качестве разделителей строк.

3
ответ дан jkchong 14 October 2019 в 11:20
поделиться
Другие вопросы по тегам:

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