Ich verwende den folgenden Code, um Daten von DataGridView
zu kopieren und dann in eine Excel-Datei einzufügen.Worksheet.PasteSpecial Funktion Einfügen von Daten als Bitmap-Bild
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);
}
das dieses Ergebnis in Excel-Datei ergibt:
Es ist auf fast allen Maschinen funktioniert gut, aber ein paar Maschinen in der Produktion, fügt sie als schwarzer Punkt Bild (ich denke, ist Konvertieren der Daten in Bitmap-Darstellung). Dies ist, was es auf einigen Maschinen Pasten:
Ich versuchte Funktion PasteSpecial()
. Aber dann kopiert es nichts in irgendeiner Maschine. Ich bin mir nicht sicher, was hier falsch läuft.
Ich konnte den Unterschied in der Konfiguration nicht in Maschinen finden, in denen es gut funktioniert und in denen es nicht funktioniert. Haben Sie eine Idee, wie Sie damit umgehen und Daten anstelle von Bildern in allen Maschinen anzeigen können?