2017-08-23 203 views
0

enter image description here私は表示された値をリッチテキストではなく、フォーマットされた表示値であるExcelで取得したいと考えています。例えばclosedXMLを使用してExcelで書式設定された表示セルの値を取得するにはどうすればよいですか?

値が「2015年7月1日」であり、このセルは、番号の形式である場合、:cell.Style.NumberFormat.Format="d"、その後、Excelでこの数は1

として表示されます私が取得したいと思いclosedXMLを使って "1"を返しますが、成功しません。私が試した価値は以下の通りです。

cell.Value = "7/1/2015"; 
cell.RichText.Text = "7/1/2015"; 
cell.GetString() = "7/1/2015"; 
cell.GetFormattedString() = "7/1/2015"; 
cell.GetValue<string>() = "7/1/2015"; 

これを達成する方法を知っている人はいますか? 多くの感謝!

+0

cell.DataTypeとは何ですか? DateTimeにする必要があります。 –

答えて

0

NumberFormat.Formatを試しましたか?

ex。 worksheet.Cell(rowCount, 2).Style.NumberFormat.Format = "mm/dd/yyyy";

これがあなたが探しているものかどうか教えてください。

+0

私は恐れていません。私が見ているものは値 "1"なので、 "7/1/2015"の代わりに "1"を得たいと思っています – Spencer

0

いくつか検索した後、私はこれを見つけた:https://github.com/ClosedXML/ClosedXML/issues/270

closedXMLのformattedstringは、Excelのとは異なり、修正がないことを示しています。 だから私は自分のカスタムハンドラを日付の時間値のために追加しました。

+0

正しい。 .NETフォーマッタが使用されているので、必要な値を取得するには '%d'を使用する必要があります。しかしそれはExcelではうまくいかないでしょう。現時点では、別の回避策を使用する必要があります。 –

関連する問題