如何将OpenXML放到剪贴板上以便粘贴到Excel中?

Pho*_*bis 5 c# excel clipboard openxml

我使用Microsoft的DocumentFormat.OpenXML库生成OpenXml.我想弄清楚如何将这个文档放到我的剪贴板中,这样我就可以将我的数据粘贴到Excel中(好像它是从Excel复制的).当我从Excel中复制时,我能够看到来自Excel的OpenXml格式化数据.我需要反过来,复制出WPF应用程序,并使用高级Excel格式粘贴到Excel(因此需要OpenXML).

这是我到目前为止的一小部分:

MemoryStream documentStream = new MemoryStream();
  SpreadsheetDocument spreadsheet = SpreadsheetDocument.Create(documentStream, SpreadsheetDocumentType.Workbook, true);

  // create the workbook
  spreadsheet.AddWorkbookPart();
  Stream workbookStream = spreadsheet.WorkbookPart.GetStream();
  spreadsheet.WorkbookPart.Workbook = new Workbook();     // create the worksheet
  spreadsheet.WorkbookPart.AddNewPart<WorksheetPart>();
  spreadsheet.WorkbookPart.WorksheetParts.First().Worksheet = new Worksheet();

  ...

  const string SPREADSHEET_FORMAT = "XML Spreadsheet";
  Clipboard.SetData(SPREADSHEET_FORMAT, clipboardData);
Run Code Online (Sandbox Code Playgroud)

Dav*_*len 1

你不能。我已经与 Microsoft 合作过,Office 不会接受剪贴板中的 OpenXML 格式或从 Office 以外的任何应用程序进行拖放。(他们还声称 Office 本身不使用这种格式,但 ClipSpy 表明他们使用这种格式 - 以扁平封装格式。)

HTML 是您最好的选择。