C#将剪贴板内容粘贴到Excel工作表中

正如标题所说,我尝试将我的剪贴板中的内容粘贴到Excel中。

我有以下代码:

Clipboard.SetText(html); sheet.Range("A1").Value = Clipboard.GetText(); 

其实,可变的HTML包含一个HTML代码文件,当我这样做时,我实际上只粘贴的HTML内容到范围,但是,如果我打开Excel,手工做,select性粘贴…我可以粘贴HTML代码,但它将代码转换为真正的表格而不是HTML代码,这是我想要的真实结果,而无需手动完成。

Excel.Range.Copy()粘贴Clipboard.GetText()

另一种方法是:

 foreach (Excel.Worksheet sheet in workbook.Sheets) { foreach (Excel.Shape shape in sheet.Shapes) { Clipboard.SetText(html); //doesn't work: sheet.Range("A1").Value = sheet.PasteSpecial(Clipboard.GetText()); sheet.PasteSpecial(Clipboard.GetText()); //throws error } } 

但是这种方式也行不通。 我可以用html – >图像来粘贴图像,但真正的值应该是可访问的,而不是图片。

希望有人能澄清如何解决它。

谢谢。

您可能会尝试使用SetData而不是SetText

  Clipboard.SetData(DataFormats.Html, html); 

将string复制到剪贴板并将其标记为HTML(如果这不起作用,您可以使用SetText )。

调用PasteSpecial作为您希望插入的单元格区域,考虑您的注释:

 ActiveSheet.Range("A1").PasteSpecial( Excel.Enums.XlPasteType.xlPasteAll, Excel.Enums.Xl‌​PasteSpecialOperation.xlPasteSpecialOperationNone, false, false); 

请注意,通过使用Value属性为单元格分配一个新值从不复制任何格式等。

我设法从剪贴板通过使用复制的单元格

  Clipboard.GetData("XML Spreadsheet"); 

然后,我通过我的代码做了一些复制粘贴,然后把它放回去

  Clipboard.SetData("XML Spreadsheet", originalObject); 

快乐的编码!

使用这个:xlWorkSheet.PasteSpecial(Missing.Value,false,false,Missing.Value,Missing.Value,Missing.Value,Missing.Value);

//下面是完整的代码

  Microsoft.Office.Interop.Excel.Workbook xlWorkBook; Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet; Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); xlApp.Visible = true; xlApp.UserControl = true; xlApp.WindowState = Excel.XlWindowState.xlMaximized; xlWorkBook = xlApp.Workbooks.Add(Type.Missing); // xlWorkBook = xlApp.Workbooks.Open(excel_filename); xlApp.ActiveWorkbook.Sheets[1].Activate(); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); xlWorkSheet.PasteSpecial(Missing.Value, false, false, Missing.Value, Missing.Value, Missing.Value, Missing.Value); xlWorkBook.SaveAs(save_file_name); Console.WriteLine("saved file name" + save_file_name); xlWorkBook.Close(); xlApp.Quit();