2010-09-30 10 views
6

Ich verwende Windows-Anwendung. In dieser Anwendung habe ich das DataGrid erfolgreich in Excel exportiert ... Nun ist das Problem, wenn ich vom Grid zum Excel Sheet exportiert habe, haben die Zellenwerte einige grüne Farbmarkierungen in der linken oberen Ecke des Excel Sheets ... dachte ich Das ist ein Typumwandlungsproblem. Wie vermeide ich dieses Problem .... und wie man den Zelle Wert vom Text in Zahl ändert ... (d. H.) In Zahl umwandeln ...Konvertieren Excel Cell-Wert von Text zu Nummer mit C#

Kann jemand mir die Lösung dieses Problems sagen?

Vielen Dank im Voraus

My-Code für Formatierung, die Excel-Tabelle für einige Wertebereich,

wksheet.Range[GetRanges[0].ToString(), GetRanges[GetRanges.Count-2].ToString()].Merge(); 

wksheet.get_Range(GetRanges[0].ToString(), GetRanges[GetRanges.Count-].ToString()).Interior.Color = Color.FromArgb(192, 0, 0); 

Antwort

7

arbeite ich nicht einen Windows-Rechner haben im Moment zu testen, aber vielleicht würden Sie versuchen, das Zellenformat zu ändern, zB:

my_range.NumberFormat = "0.0"; // change number of decimal places as needed 

Hier ein vollständiges Beispiel von Microsoft: How to automate Microsoft Excel from Microsoft Visual C#.NET.

+0

Wenn es Int bedeutet was soll ich geben innerhalb der Zeichenfolge, die Sie mir – Suryakavitha

+0

Ok Yar Vielen Dank. Ich werde es überprüfen und Ihnen sagen – Suryakavitha

0

Wenn Sie den Wert für die Zellen zuweisen, versuchen, alle Werte in einem 2-dimensionalen zu erhalten Array zuerst und weisen Sie dann das Array dem Bereich zu. Auf diese Weise wird es sehr schnell und auch ich denke, die Werte in der Zelle werden Nummer sein. Probieren Sie es aus ... hoffentlich sollte es

+0

ich habe es als zweidimensionale Array nur ... Ich möchte einige Werte in Zahl umwandeln .. – Suryakavitha

1

Die folgende Routine füllt eine Tabelle dynamisch mit Daten (Text und Zahlen) in einer Textdatei.

Der Kicker verwendet ein Objekt-Array, um die Werte festzulegen.

StreamReader STRead; 
String[] STCells; 
object[] cellData; 
int temp; 
Excel.Range tempRange; 
for (int i = 0; i < FileList.Length; i++) 
{ 
    STRead = FileList[i].OpenText(); 
    int j = 0; 
    while (!STRead.EndOfStream) 
    { 
     STCells = STRead.ReadLine().Split(','); 
     cellData = new object[STCells.Length]; 
     for (int k = 0; k < STCells.Length; k++) 
     { 
      if (Int32.TryParse(STCells[k], out temp)) 
       cellData[k] = temp; 
      else 
       cellData[k] = STCells[k]; 
     } 
     tempRange = sheetList[i].get_Range(ReturnCellID(j, 0), 
              ReturnCellID(j, STCells.Length - 1)); 
     j++; 
     tempRange.Value2 = cellData; 
    } 
    STRead.Close(); 
} 
0

Ändern Sie den Zellenwert von Text in Zahl ist einfach mit Excel Jet Cell .NET component.

Cell["A1"].Style.StringFormat = "##.#"; // or "0.0" same as in MS Excel 
1

Ich hatte dieses Problem mit einem Excel-Blatt, das sowohl reguläre Zahlen und Prozent (ein Ergebnis eines Strings aus einem Crystal Report-Export) enthält.

Um alle zu ändern ich auf einmal eine Schleife etwa so gemacht: war, dass

//example range 
Excel.Range rng = mWorkSheet.get_Range("A1", "H25"); 
foreach (Excel.Range range in rng) 
{ 
    if (range.Value != null) 
    { 
     int number; 
     bool isNumber = int.TryParse(range.Value.ToString().Trim(), out number); 
     if (isNumber) 
     { 
      range.NumberFormat = "#,##0"; 
      range.Value = number; 
     } 
     else 
     { 
      //the percent values were decimals with commas in the string  
      string temp = range.Value.ToString(); 
      temp = temp.Replace(",", "."); 
      range.Value = temp; 
     } 
    } 
} 

Ergebnis sowohl die prozentualen Strings und die Zahlen in das richtige Excel-Format konvertiert wurden.

Verwandte Themen