2016-11-21 2 views
0

Ich muss eine Excel-Datei lesen und schreiben. Das Problem ist, dass, wenn ein PC das Dezimaltrennzeichen ist, (Komma) auch in der Excel-Datei Nummern mit dem Komma gespeichert werden. Ich möchte die Werte für alle Modi mit dem Punkt anstelle eines Kommas speichern.Komma Dezimaltrennzeichen, aber ich möchte Daten mit Punkt speichern

ist hier ein Stück Code:

var wb = openWorkBook(filename); 
var ws = wb.Worksheet("CNF"); 
IXLRow row = ws.Row(device.Ordinal - 1 + FirstRow); 
for (int j = 0; j < MAXCOLS; ++j) 
{ 
    IXLCell cell = row.Cell(j + FirstCol); 

    cell.Value = Convert.ChangeType(device[j], m_column_type[j]); 
} 

Antwort

3

Convert.ChangeType(object, Type) verwendet die aktuelle Kultur des Threads für die Konvertierung. Es klingt wie Sie die invariante Kultur wollen, so können Sie Convert.ChangeType(object, Type, IFormatProvider) verwenden sollten:

cell.Value = Convert.ChangeType(device[j], m_column_type[j], 
    CultureInfo.InvariantCulture); 
+0

Funktioniert nicht Gibt es eine Möglichkeit Komma zu ersetzen zu zeigen? – fede186

+0

@ fede186: Nun ja, du * könntest * das tun, aber es ist nicht die beste Lösung. Es ist besser, das vorhandene Komma zu vermeiden. –

+0

Weil ich sah, dass am Anfang nur Punkte in der Datei gelesen werden und wenn dann die Daten in ein Textfeld eingefügt werden, wird als Punkte gelesen, wenn das Dezimaltrennzeichen der Punkt ist, als Komma, wenn ein Komma in Dezimal ist. Falls Sie den Wert in der Textbox ändern wollen, wenn ein Komma in Dezimal ist, erlauben Sie mir nicht einmal, einen Punkt einzufügen, und dann speichert das Ende das Komma in der gesamten Zeile der corrispoindente Excel-Datei. – fede186

Verwandte Themen