2017-04-24 93 views
0

我已經看了很多通過StackOverflow,但似乎沒有什麼完全解決我的問題。EPPlus導致警告「在這個單元格中的數字被格式化爲文本或撇號前面」

在我的C#程序中,我有一個字符串字段,它有時只是一個數字,有時是一個字。該字符串是生成的Excel文檔中單元格值的來源。

當字符串包含一個單詞時,它工作正常,當它包含說「2」時,我得到錯誤。

The number in this cell is formatted as text or preceded by an apostrophe

SO上的大多數答案都依賴於將單元視爲數字來擺脫這種情況,但地雷有時只是一個數字,而且我不希望Excel中的列包含邏輯上爲單元的不同格式相同。

我試過把它當作文本字段使用「@」格式來對待,但那也不起作用。

excelRange.Style.Numberformat.Format = "@";

有什麼想法?

更新:

當我在Excel中輸入2時,它將它視爲一個數字。如果我手動將格式更改爲文本,它將以我想要的方式工作而不會出現任何錯誤。我不知道,當我編程輸入「2」,使用「@」格式化它不會做同樣的...

更新2:

的代碼我使用的力矩當它不是字符串時可以正常工作。

using (var excelRange = excelWorksheet.Cells[lastEmptyRow, 5]) 
{ 
    var value = task.Priority; 
    excelRange.Value = value; 
    excelRange.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; 
    excelRange.Style.Border.BorderAround(ExcelBorderStyle.Thin); 
} 
+0

你能提供一些你得到錯誤的代碼嗎? – Digvijay

+0

嗨Digvijay,道歉不包括這一點。我現在更新了它。 –

+0

您是否嘗試過將單元格NumberFormat設置爲cell.Style.Numberformat.Format =「@」;這會強制它被視爲字符串而不是數字,即使您將值設置爲數字。 – Digvijay

回答

0

我得到的錯誤 - 除了它是不是一個錯誤它是一個警告「在此單元格數目爲文本格式,或者由撇號前面。」這正是你說你想要的,以便與其他數據的格式保持一致。

可以在Excel選項(see)中關閉錯誤消息。

相關問題