Formatierung Excelsheet aus C# 2005

09/09/2009 - 14:32 von Rainer Bücker | Report spam
Hallo Zusammen,

ich suche eine Möglichkeit, in einem Excelsheet z.B. die 5. Spalte
numerisch zu formatieren. (Format 1.000,99)
Mit nachfolgendem Code wird die erste Zeile von A-K Fett formatieren, aber
wie geht das mit der Formatierung von Datum / Zahlen / Text?
// Excel-Instanz erzeugen

Excel.Application excel = new Excel.ApplicationClass();

excel.Visible = true;

// Arbeitsmappe öffnen

object missing = Missing.Value;

string fileName = Path.Combine(Application.StartupPath, cDateiname);

Excel.Workbook workbook = excel.Workbooks.Open(fileName, missing, missing,
missing,missing, missing, missing, missing, missing, missing, missing,
missing, missing, missing, missing);

Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[tablename];

// 1. Zeile von Feld bis Feld fett markieren

string strDefaultFontName = "Arial";

int intRow = 1; // Zeile Nr.

string strRangeVon = "A" + intRow.ToString();

string strRangeBis = "K" + intRow.ToString();

worksheet.get_Range(strRangeVon, strRangeBis).Font.Bold = true;

Danke für Tips.

Gruss

Rainer
 

Lesen sie die antworten

#1 Frank Dzaebel
09/09/2009 - 21:54 | Warnen spam
Hallo Rainer,

ich suche eine Möglichkeit, in einem Excelsheet z.B. die 5. Spalte
numerisch zu formatieren. (Format 1.000,99)



Erster möglicher Ansatz über explizites Setzen der Culture:

Excel.Range r = worksheet.get_Range(strRangeVon, strRangeBis);
r.Font.Bold = true; r.Font.Name = strDefaultFontName; r.Font.Size = 12;
CultureInfo ciDefault = Thread.CurrentThread.CurrentCulture;
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
r.Style = "Comma";
Thread.CurrentThread.CurrentCulture = ciDefault;
_________

Ein anderer Ansatz geht über Reflection:

// folgendes ggf. nur einmalig ausserhalb der Methode:
CultureInfo enCulture = new CultureInfo("en-US");

object ret = r.GetType().InvokeMember("Style",
BindingFlags.SetProperty, null, r,
new object[] { "Comma" }, enCulture );


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen