Ich schreibe gerade über dynamische Typisierung, und ich gebe ein Beispiel für Excel-Interop. Ich habe vorher noch keine Office-Interop gemacht, und es zeigt sich. Die MSDN Office Interop tutorial für C# 4 verwendet die _Worksheet
Schnittstelle, aber es gibt auch eine Worksheet
Schnittstelle. Ich habe keine Ahnung, was der Unterschied ist.Excel-Interop: _Worksheet oder Arbeitsblatt?
In meiner absurd einfachen Demo-App (siehe unten) funktioniert beides gut - aber wenn Best Practice das eine oder andere diktiert, würde ich es lieber angemessen verwenden.
using System;
using System.Linq;
using Excel = Microsoft.Office.Interop.Excel;
class DynamicExcel
{
static void Main()
{
var app = new Excel.Application { Visible = true };
app.Workbooks.Add();
// Can use Excel._Worksheet instead here. Which is better?
Excel.Worksheet workSheet = app.ActiveSheet;
Excel.Range start = workSheet.Cells[1, 1];
Excel.Range end = workSheet.Cells[1, 20];
workSheet.get_Range(start, end).Value2 = Enumerable.Range(1, 20)
.ToArray();
}
}
Ich versuche dabei eine vollständige Tieftauch in COM oder Office Interoperabilität zu vermeiden, Hervorhebung nur die neuen Features von C# 4 - aber ich will nichts wirklich tun, wirklich dumm.
(Es kann auch etwas wirklich, wirklich dumm in dem Code oben sein, in diesem Fall lass es mich wissen. Verwenden separate Start/Ende-Zellen statt nur "A1: T1" ist absichtlich - es ist einfacher zu sehen, dass es ist wirklich eine Reihe von 20 Zellen.Anderes ist wahrscheinlich zufällig.)
Also, sollte ich _Worksheet
oder Worksheet
verwenden, und warum?
Jon, zusätzlich zu den hervorragenden Antworten hier gegeben wird, Ich würde hinzufügen, dass im Allgemeinen, wenn Sie mit Excel über das Interop arbeiten, verwenden Sie den Klassennamen, wie es normalerweise in Excel erscheint. Dies bedeutet, dass Sie 'Arbeitsblatt' statt '_Worksheet' verwenden und 'Anwendung' anstelle von 'ApplicationClass' verwenden. (Eine Diskussion hier erklärt, warum Sie die 'ApplicationClass' nicht verwenden sollten: http://blogs.msdn.com/pyrtor/archive/2004/02/05/67872.aspx.) Wenn Sie mit dem Excel-Objektmodell nicht vertraut sind ausgesetzt COM, dann könnte dies schwieriger sein, aber ich denke, es sollte die meiste Zeit ziemlich klar sein. –
Glücklicherweise mache ich * sehr * wenig mit Office - versuche wirklich nur die neuen Funktionen zu zeigen. Vielen Dank für den Link - sehr hilfreich! –
Es tut mir leid, aber ich muss fragen - Was ist die neue Funktion von C# 4, die Sie hervorheben? – Oskar