2017-09-26 45 views
0

我對ClosedXML有類似的問題,就像這個one但有點不同。 SetDataType方法不起作用。 例如,我有價值 string dps = "3.12.02" 這不是一個日期或數字,它是有效的文本。ClosedXML - 爲單元格設置數據類型不起作用

當我這樣做: ws.Cell(1, 1).Value = dps; ws.Cell(1, 1).SetDataType(XLCellValues.Text);

並保存文件,然後在Excel中打開它,它仍然將其轉換爲一些rubish像37593 我嘗試過把它和設定值後,沒有變化。

有人可以幫我嗎?

回答

1

.Value方法嘗試猜測您正在設置的值的類型。在你的情況下,該值是一個有效的(即可解析的)DateTime,它們在內部存儲爲數字。

要明確設置的值,沒有猜測,使用方法:

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

謝謝!這兩種情況都很完美,但由於我的名聲低,我無法向上推薦:(所以至少我想以這種方式感謝你:) – Lucas

+0

快樂。我還更新了IXCell.Value的doctext,希望更清楚地表明,如果使用此方法,數據類型將被猜測。 https://github.com/ClosedXML/ClosedXML/commit/93f42089f952c4d71912a0749c770035c4a494a4 –

0

雖然我不能告訴你爲什麼它不起作用,但一個簡單的方法是在字符串前面加一個撇號(')。這迫使Excel將所有後面的內容視爲文本。

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

謝謝!!這兩種情況都很完美,但由於我的名聲低,我無法向上推薦:(所以至少我想以這種方式感謝你:) – Lucas

相關問題