+-
C#将剪贴板内容粘贴到Excel工作表中
如标题所示,我尝试将剪贴板中的内容实际粘贴到Excel中.

我下面的代码:

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

实际上,变量html包含一个html代码文件,当我这样做时,我实际上仅将html内容粘贴到Range中,但是,如果我打开Excel并手动执行,则粘贴选择性…我可以粘贴html代码,但是它将代码转换为真实的表而不是html代码,这是我想要的真实结果,而无需手动完成.

Excel.Range.Copy() paste with 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);

将字符串复制到剪贴板并将其标记为HTML(如果在您的情况下不起作用,则可以使用SetText).

考虑到您的评论,针对您要插入的单元格区域调用PasteSpecial:

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

请注意,使用Value属性为单元格分配新值时,切勿复制任何格式等.

点击查看更多相关文章

转载注明原文:C#将剪贴板内容粘贴到Excel工作表中 - 乐贴网