C# Worksheet.Paste将数据粘贴为位图图像的特殊功能

C# Worksheet.Paste将数据粘贴为位图图像的特殊功能,c#,datagridview,com-interop,excel-interop,clipboarddata,C#,Datagridview,Com Interop,Excel Interop,Clipboarddata,我使用下面的代码从DataGridView复制数据,然后粘贴到excel文件中 private void copyAlltoClipboard() { //to remove the first blank column from datagridview dataGridView1.RowHeadersVisible = false; dataGridView1.SelectAll(); DataObject dataObj = dataGridView1.Ge

我使用下面的代码从
DataGridView
复制数据,然后粘贴到excel文件中

private void copyAlltoClipboard()
{
    //to remove the first blank column from datagridview
    dataGridView1.RowHeadersVisible = false;
    dataGridView1.SelectAll();
    DataObject dataObj = dataGridView1.GetClipboardContent();
    if (dataObj != null)
        Clipboard.SetDataObject(dataObj);
}
private void button3_Click_1(object sender, EventArgs e)
{
    copyAlltoClipboard();
    Microsoft.Office.Interop.Excel.Application xlexcel;
    Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
    Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
    object misValue = System.Reflection.Missing.Value;
    xlexcel = new Excel.Application();
    xlexcel.Visible = true;
    xlWorkBook = xlexcel.Workbooks.Add(misValue);
    xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
    Excel.Range CR = (Excel.Range)xlWorkSheet.Cells[1, 1];
    CR.Select(); // CR is a COM Object
    // WorkSheet.PasteSpecial(object,object,object,object,object);
    xlWorkSheet.PasteSpecial(CR, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true);          
}
这将在excel文件中生成此结果:

它在几乎所有的机器上都能很好地工作,但在生产过程中有一些机器除外,它粘贴为一个黑点图片(我猜它是在转换位图表示中的数据)。这是它在某些机器上粘贴的内容:

我尝试使用函数
PasteSpecial()
。但是它不会在任何机器上复制任何东西。我不确定这里出了什么问题

我无法在运行良好的机器和不运行的机器的配置方面找到差异。
你知道如何在所有机器上处理这个问题并显示数据而不是图片吗

我也遇到了这个问题。上述代码的修复方法是正确配置PasteSpecial方法。方法的第一个参数应该是格式。更正
按钮3的最后一行\u单击\u 1
,如下所示,所有操作都应正常

xlWorkSheet.PasteSpecial("Text", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true);          
另一个似乎解决了问题的选项是按如下方式更改行。这表示粘贴的文本不是链接,也不是图标

xlWorkSheet.PasteSpecial(CR, false, false, Type.Missing, Type.Missing, Type.Missing, true);          

我也遇到了这个问题。上述代码的修复方法是正确配置PasteSpecial方法。方法的第一个参数应该是格式。更正
按钮3的最后一行\u单击\u 1
,如下所示,所有操作都应正常

xlWorkSheet.PasteSpecial("Text", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true);          
另一个似乎解决了问题的选项是按如下方式更改行。这表示粘贴的文本不是链接,也不是图标

xlWorkSheet.PasteSpecial(CR, false, false, Type.Missing, Type.Missing, Type.Missing, true);