2013-02-06 14 views
5

Ich exportiere eine Tabelle von SQLite zu Excel (2010) in C#. Es funktioniert gut. Ich verwende die Excel.Range.set_Value() Methode.C# Interop Excel-Format wie Excel-Format als Tabelle

Wie kann ich ein Excel.Range wie Excel's formatieren (wie eine Tabelle) würde?

+0

Wie bei der Anwendung einer der in Excel 2010 integrierten Tabellenformate? Sie können die TableStyle-Eigenschaft Ihres Bereichs auf TableStyleMedium1 oder einen der integrierten Tabellenstile festlegen. –

Antwort

10

Um auf meinen Kommentar zu erweitern und zu D Stanley hinzuzufügen.

+0

Vielen Dank! Ich habe die alte Version von Interop benutzt! – Horbert

+0

David Yenglin: das funktioniert erstaunlich !, nur ein Problem, das ich darüber habe. Alle meine ursprünglichen Namen ändern sich automatisch in spalte1, spalte2, coulmn3, etc ....... wissen Sie, wie Sie die ursprünglichen coulmn Namen behalten? – Mana

+2

oki, also habe ich dieses Problem gelöst, indem ich ein wenig Code geändert habe, XlYesNoGuess.xlNo -> XlYesNoGuess.xlYes – Mana

-1

Hier ist die VBA, die es tut:

ActiveSheet.ListObjects.Add xlSrcRange, Range("$J$10:$N$12"), , xlYes 

nicht zu hart sein sollte in ein Automatisierungs Aufruf zu übersetzen. Sie können auch read the documentation.

2

In diesem Beispiel wird ein rechteckiger Bereich für jede Zelle im aktiven Blatt ausgewählt. Außerdem verwendet es indizierte Parameter von Range, um die Entfernungspunkte zu erhalten. Darüber hinaus verwendet AddEx() (und die meisten Methoden in Interop.Excel) Standardparameter, so dass Sie System.Reflection.Missing nicht verwenden müssen.

// define points for selecting a range 
// point 1 is the top, leftmost cell 
Excel.Range oRng1 = oSheet.Range["A1"]; 
// point two is the bottom, rightmost cell 
Excel.Range oRng2 = oSheet.Range["A1"].End[Excel.XlDirection.xlToRight] 
    .End[Excel.XlDirection.xlDown]; 

// define the actual range we want to select 
oRng = oSheet.Range[oRng1, oRng2]; 
oRng.Select(); // and select it 

// add the range to a formatted table 
oRng.Worksheet.ListObjects.AddEx(
    SourceType: Excel.XlListObjectSourceType.xlSrcRange, 
    Source: oRng, 
    XlListObjectHasHeaders: Excel.XlYesNoGuess.xlYes);