Überprüfen Sie das Excel-Arbeitsblatt - wenn die Zellen als Percentage
formatiert sind, werden die Daten nur als zB 90.0%
angezeigt, aber als 0.9
gespeichert.
Wenn Sie das Zellenformat vor dem Importieren der Nummer überprüfen, können Sie alle erforderlichen Konvertierungen durchführen.
Angenommen, Sie verwenden Interop.Excel:
Die Range.NumberFormat
Eigenschaft gibt die gleichen Formatstrings Sie im Format Cells
Dialogfeld in Excel verwenden würden. Percentage
ist nur eine Verknüpfung zu einer Formatzeichenkette vom Typ 0.00%
, bei der decimal places
im Typ Percentage
einfach die Anzahl der Nullen nach dem Dezimalpunkt in der Formatzeichenfolge geändert wird.
MSDN - Range.NumberFormat
EDIT
Beispiel dafür, wie das Format einer Reihe von Zellen zu finden:
Worksheet wks = new Worksheet();
String nfmt = (string)((Range)wks.Cells[1,1]).NumberFormat;
Wo nfmt
ein Format-String enthalten, die Sie kann nach %
überprüfen um festzustellen, ob die Zelle (oder der Bereich) so formatiert ist, dass ein Bruch als Prozentwert angezeigt wird. Beachten Sie, dass nfmt
NULL
ist, wenn der Bereich Zellen mit unterschiedlichen Formatzeichenfolgen umfasst!
Es würde helfen wissen, welche Bibliothek Sie die Werte lesen verwenden (OpenXML SDK, NPOI, etc.) – andypaxo
NO, einige Daten sind Zahlen. Und .90 ist ein gültiger und angemessener Prozentsatz. "90%" ist eine Zeichenfolge und kein Prozentsatz. Sie sollten entsprechend formatieren, wenn Sie Ihre Daten zurück anzeigen. – banging