2013-08-05 66 views
0

我有一個我無法解決的問題。我正在寫一些字符串到Excel單元格中。但Excel正在以錯誤的方式格式化它們。這些字符串是ID,例如12A1,12D1,12E1等。 除了被視爲指數的「12E1」字符串外,一切正常。我嘗試過使用numberformat,但它不起作用。C#Excel格式問題

例如,字符串「12E3」被寫爲1.2e03或1200等等。我只想看到寫在那裏的「12E3」。該程序將被許多PC使用,所以我無法更改每個人的Microsoft Excel常規設置!

謝謝你,對不起我的英文不好!

編輯:下面的代碼:

foreach (var Citem in ComQuery) 
{ 
    i++; 
    xlWorkSheet.Cells[i, 1] = "'" + Citem.commessaID; //the item is "12D3" 
    xlWorkSheet.Cells[i, 2] = Citem.commessaID;  //the item is "12D3" 
} 

第一個單元格給我字符串「12D3」,但與Excel的一個警告,第二單元給我1.2E + 004

+1

現在,你會告訴我們一些代碼,你願意嗎?:) – butterbox

回答

0

你可以這樣做是這樣的:

var id = "12E1" 
ws.Range("A1").Value = "'" + id 

,這將給你的以下值:

'12E1

+0

這可以幫助,謝謝。但如果我需要重新使用這些數據,我是否需要擺脫「'」字符? – Rob

+0

是的,你會的。您可以使用WriteID()和ReadID()實用程序來添加和刪除額外的字符。 –

+1

@PatMustard,不需要你需要擺脫「'」,而從細胞中讀取。在Excel中「'」是一種將文字轉換(投射)的符號。當檢查'Cell.Value'時,它被忽略。覈實。 –

1
xlWorkSheet.Cells[i, 2].NumberFormat = "@"; 
xlWorkSheet.Cells[i, 2] = Citem.commessaID;