2017-09-26 22 views
0

ClosedXMLについてよく似た質問がありますが、これはoneと少し違います。 SetDataTypeメソッドが機能しません。 たとえば、値が string dps = "3.12.02" であり、日付または番号ではありません。有効なテキストです。ClosedXML - セルのデータ型が正しく設定されていません。

私はこれを行うとき: ws.Cell(1, 1).Value = dps; ws.Cell(1, 1).SetDataType(XLCellValues.Text);

をし、それはまだ、変更なし、私は前にそれを入れてみました37593 のようにして、値を設定した後、いくつかのrubishに変換し、ファイルを保存し、Excelで開きます。

誰でも助けてくれますか?

答えて

1

.Valueメソッドは、設定している値のタイプを推測しようとします。あなたの場合、値は有効な(つまり解析可能な)DateTimeであり、内部的に数値として格納されています。

は、推測することなく、明示的に値を設定するために使用:

string dps = "3.12.02"; 
ws.Cell(1, 1).SetValue(dps); 
+0

ありがとうございます!両方のシナリオは完璧に動作しますが、私の低い評判のために私はupvoteできません:(少なくとも私はあなたにこのように感謝したいです:) – Lucas

+0

喜び。また、IXCell.Valueのdoctextを更新して、このメソッドを使用するとデータ型が推測されるようにしました。 https://github.com/ClosedXML/ClosedXML/commit/93f42089f952c4d71912a0749c770035c4a494a4 –

0

なぜ動作しないのかはわかりませんが、簡単な方法の1つはアポストロフィ(')を文字列の先頭に付けることです。これにより、Excelは後続のすべてをテキストとして扱います。

string dps = "'3.12.02"; 
ws.Cell(1, 1).Value = dps; 
+0

をありがとう!両方のシナリオは完璧に動作しますが、私の低い評判のために私はupvoteできません:(少なくとも私はあなたにこのように感謝したいです:) – Lucas

関連する問題