Excel: Über einen Range auf eine Zelle zugreiffen.

05/11/2007 - 09:39 von Pascal Suter | Report spam
Hallo

Ich benutze diesen Code um etwas in Excel zu schreiben.
Range _range = mainAWS.get_Range("ZClient", Type.Missing);
_range.Value2 = FormTabMain.TbCustomer;

Ich habe der Spalte A einen Range gegben "MyRangeSpalteA".
Nun möchte ich die FElder abfüllen
Wie kann ich dies machen mit dem Range? Ich möchte "MyRangeSpalteA" jede
Zelle nacheinander beschreiben.

Grüsse
 

Lesen sie die antworten

#1 Frank Dzaebel
05/11/2007 - 10:54 | Warnen spam
Hallo Pascal,

Ich habe der Spalte A einen Range gegben "MyRangeSpalteA".
Nun möchte ich die FElder abfüllen
Wie kann ich dies machen mit dem Range? Ich
möchte "MyRangeSpalteA" jede Zelle nacheinander beschreiben.



Jede Zelle der Spalte? Das sind dann aber ggf. sehr viele,
was sehr inperformant sein kann.
Kann man zum Beispiel mit foreach machen ...

private void Form1_Load(object sender, EventArgs e)
{
string path = Path.GetFullPath(@"Mappe1.xls");
Excel.Application app = new Excel.Application();
Workbook wb = (Workbook)Call(app.Workbooks, "Open", path);
int firstSheet = 1;
Worksheet sheet = (Worksheet)wb.Worksheets[firstSheet];
Range rangeA = sheet.get_Range("MyRangeSpalteA", Missing.Value);
string[] inhalte = { "eins", "zwei", "drei", "vier", "fünf" };
int count = 0;
foreach (Range cell in rangeA)
{
if (count >= inhalte.Length) break;
cell.Value2 = inhalte[count++];
}
app.Visible = true;
}

/// <summary>Call method with optional parameters</summary>
private object Call(object target, string methodName, params object[]
parameters)
{
return target.GetType().InvokeMember(methodName,
BindingFlags.InvokeMethod | BindingFlags.OptionalParamBinding,
null, target, parameters);
}

Performant in Excel oft das Arbeiten über das ClipBoard.


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

Ähnliche fragen