+-

如标题所示,我尝试将剪贴板中的内容实际粘贴到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.XlPasteSpecialOperation.xlPasteSpecialOperationNone,
false, false);
请注意,使用Value属性为单元格分配新值时,切勿复制任何格式等.
点击查看更多相关文章
转载注明原文:C#将剪贴板内容粘贴到Excel工作表中 - 乐贴网