Ändern von Excel-Zelle Eigenschaften mit C# unter Verwendung der Späten Bindung
Ich kann nicht scheinen, um auf die Eigenschaften für einzelne Zellen in meinem Excel-sheet.
Die Funktion, die ich erstellt ein Excel-Arbeitsblatt, füllt es mit Daten aus einem DataSet, und dann Drucke das Blatt.
Das Problem, dass ich habe ist, dass wenn ich drucken Sie das Blatt, die Formatierung ist alles aus dem Gleichgewicht geraten-
die Zellen sind zu klein, und ein Großteil der Informationen abgeschnitten ist. Wie würde ich die Breite der Zellen und ändern Sie die schriftart?
Hier ein kleines snippet, was ich arbeite, für Sie bereit:
//Add rows
iRow = 1;
foreach (DataRow row in table.Rows)
{
iCol = 1;
foreach (DataColumn col in table.Columns)
{
Parameters = new Object[2];
Parameters[0] = iRow + 1;
Parameters[1] = iCol;
excelCell = excelSheet.GetType().InvokeMember("Cells",
BindingFlags.GetProperty, null, excelSheet, Parameters);
Parameters = new Object[1];
Parameters[0] = row[col.ColumnName];
excelCell.GetType().InvokeMember("Value",
BindingFlags.SetProperty, null, excelCell, Parameters);
iCol++;
}
iRow++;
}
Scheint es eine Menge von Beispielen, wie die Umsetzung, etwas ähnliches mit early-binding, aber ich muss fehlt etwas, das mit late-binding.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin kein fan von, durch diese gehen über die Reflexion. Es ist ein schmerzhafter Prozess. Wenn Sie können, würde ich wirklich empfehlen mit Blick auf die neue "dynamic" Schlüsselworts. Sie verlieren Intellisense (keine große Sache, da es nicht besonders nützlich in diesem Fall sowieso), aber der code ist VIEL einfacher zu schreiben und zu verstehen.
Hier ist ein Beispiel, öffnen von Excel-erstellen einer Arbeitsmappe, die Einstellung der Wert in einer Zelle, die Einstellung der Schriftgröße, und schließlich ändern Sie die Spaltenbreite:
Wenn du dir nicht sicher bist, wie etwas geht, kann man im Grunde nur die Aufzeichnung eines Makros in Excel, dann sehen Sie sich den code. Kann man fast schneiden und fügen Sie Sie in Ihrem C# - code.
Ändern Sie die Breite der Zelle ist die gleiche wie die Veränderung der Breite der Spalte
Sehen, ob das helfen? (UNGETESTET)
Für die Schriftarten finden Sie, wenn diese helfen?
Zitat aus dem obigen link, falls es jemals stirbt
Verwenden, was Siddharth zeigte mir, ich war in der Lage, einen Bereich von Zellen aus dem Arbeitsblatt und ändern Sie die ColumnWidth-Eigenschaft auf das range:
Kann ich mit dieser Methode ändern Sie die cell-Eigenschaften in diesem Bereich durch Austausch "ColumnWidth" mit welcher Eigenschaft ich wollte.
Um die schriftart zu ändern, habe ich zunächst benötigt, um die Schriftart Anwesen der Zelle als Objekt, und verwenden Sie dann das Objekt, um Zugriff auf die font-Eigenschaften:
Dank!