2017-11-16 15 views
0

からセル値を取得中に、私はExcelからセルの値は、これを使用して、オブジェクトのマトリックスにファイルを取得していますセルの書式を保持:エクセル

Object[,] values = (Object[,])worksheet.UsedRange.Cells.Value; 

Excelで、私は時々、小数、時には%の数字を持っているので、問題があります。

Cells.Valueを呼び出すと、10進形式のパーセント値が得られます。 の場合、数値が60.32%の場合の場合、値は0.6032となり、この10進形式を維持して60.32%を得たいと考えています。

私はworksheet.UsedRange.Cells.Textを使用してみましたが、nullと返信しました。UsedRange.CellsはExcelでさまざまな形式を持っています。

どうすれば数字にパーセンテージを維持できますか? ClosedXML APIについては

+0

可能な重複(https://stackoverflow.com/questions/11139292/c-sharp-excel-percentages-converted-to-decimals) – Rish

+0

いいえ、UsedRangeは、異なるフォーマットを有しますそれは私にnullを返します。 – Boris

+0

可能な複製https://stackoverflow.com/questions/44159232/how-to-read-percentage-value-with-sign-from-excel-file-using-closedxml –

答えて

0

:代わりにUsedRange.Cells.Valueのは、あなたが相互運用 APIを使用している場合、あなたはあなたの側にいくつかの余分な作業を行う必要がありUsedRange.Cells.GetFormattedString()

てみてください。

  • 範囲内のすべてのセルをパーセンテージとしてフォーマットされている場合は、Range.NumberFormatを使用してフォーマットを取得することができますし、それに応じて、あなたは100で、各セルの値を乗算し、最後に「%」文字を追加することができます。
  • Range.NumberFormatは、範囲内にあるセルのタイプが異なる場合はnullを返します。その特定の範囲内にある各セルを反復処理する必要があります。特定のセル(Number:、例:((Range)wks.Cells[1,1]).NumberFormat)のNumberFormatをチェックし、それに応じて操作を実行します。 [小数に変換C#Excelのパーセンテージ]の
+0

私はCells.GetFormattedString()を持っていません。方法。 – Boris

+0

あなたはどのような種類のライブラリを使用してExcelファイルを読むのですか? –

+0

Microsoft.Office.Interop.Excelを使用しています – Boris