워크 시트의 일부 구조를 표시하는 Excel 추가 기능이 있습니다. 사용자는 구조를 복사하여 다른 워크 시트 또는 클립 보드 형식으로 처리되는 다른 응용 프로그램에 붙여 넣을 수 있습니다. 사용자가 구조체를 복사 할 때 구조체를 특정 형식으로 변환하고 DataObject :: SetData()를 사용하여 클립 보드에 저장합니다. 복사가 Excel에서 시작되면 클립 보드에 여러 형식이 저장됩니다 (이미지 참조)..NET - 기존 형식에 내 클립 보드 형식을 추가하는 방법
문제는 클립 보드의 데이터 (Excel에서 복사하여 제 3 자 응용 프로그램에 붙여 넣기)에 의존하는 타사 응용 프로그램이 있다는 것입니다. 그러나 재미있는 점은 그것이 어떤 형식인지에 대한 확신이 없다는 것입니다. 나는 Excel이 거기에 놓은 기존 형식을 유지해야하며 또한 내 형식을 추가해야합니다.
현재 .NET에서 Clipboard 클래스를 사용하면 (DataObject를 가져 와서 SetData를 호출 할 때) 다른 모든 형식이 새로운 형식으로 바뀝니다. 그런 다음 새 DataObject를 만들고이 데이터 개체에 기존 형식 데이터를 복사 한 다음이 데이터 개체를 클립 보드에 설정하려고했습니다. 이 작동하지만 데이터를 복사하는 데 시간이 걸립니다.
// Copying existing data in clipboard to our new DataObject
IDataObject existingDataObject = Clipboard.GetDataObject();
DataObject dataObject = new DataObject();
string[] existingFormats = existingDataObject.GetFormats();
foreach (string existingFormat in existingFormats)
dataObject.SetData(existingFormat, existingDataObject.GetData(existingFormat));
난 그냥 기존 데이터 객체에 액세스하고 조용히 다른 형식에 영향을주지 않고 내 자신의 데이터를 추가 할 수있는 솔루션을 찾고 있어요.
엑셀 클립 보드 형식 - (기본 형식을 무시) 당신은 당신이 당신의 데이터를 추가하려면 Windows 클립 보드에서 얻을 IDataObject에 대한 래퍼 클래스를 만들 수
Clipboard Formats http://www.freeimagehosting.net/uploads/258a7fcdd8.jpg
이 사용자 지정 래퍼를 클립 보드에 넣으면 Excel 형식에 종속 된 타사 응용 프로그램에서 해당 사용자 지정 래퍼를 이해할 수 없습니다. – A9S6
제 3 자 앱이 데이터를 찾을 수없는 이유를 모르겠습니다. IDataObject 인터페이스를 통과하지 않습니까? – bbudge
+1 : 지금 당신의 요지를 얻었습니다. 나는 이것을 시도해 그것이 제 3 자와 일하는지를보아야한다. 감사 !! – A9S6