2012-05-23 110 views
6

我目前正在寫一個應用程序(C#)生成一個excel文件報告的基礎上,其他報告。如何更改使用C#的Excel單元格的文本格式?

的問題是,一旦獲得從某一片的數目,並複製到另外一個,目的小區沒有被正確格式化,並且數量正確地做無顯示。

E.g : 
Number from source : 14.34 
Number on destination : 14.345661 

如何格式化目標單元格以強制數據格式化與源單元格相同。

謝謝!

+0

各種例子在這裏「###」:https://support.office.com/ EN-US /條/創建或 - 刪除-A-自定義數字格式,2d450d95-2630-43b8-bf06-ccee7cbe6864?UI = EN-US&RS = EN-US&AD = US –

回答

4

給定小區/範圍在Excel的格式可以通過代碼來設置。

public void SetCustomFormat(string format, int r, int c) 
{ 
    ((Excel.Range)xlWks.Cells[r, c]).NumberFormat = format; 
} 

在特定情況下,我相信你會需要使用的格式「#.00」或

+0

我會試試看。 –

+0

看不到這個xlWks變量。這是工作表嗎? –

+0

是的,這是工作表變量。我使用xlWks變量在內部定義了自己的代碼。 – Nevyn

3

下面是一些代碼,我已經在使用中有一個片段,向您展示用於格式化單元格的一般模式。很明顯,有一些變量被聲明,但它應該會告訴你你需要什麼。

sheet.get_Range("A" + CurrentRowIndex.ToString(), ColPrefix + CurrentRowIndex.ToString()).Font.Bold = true; 
sheet.get_Range("A" + CurrentRowIndex.ToString(), ColPrefix + CurrentRowIndex.ToString()).Interior.Color = Color.Silver.ToArgb(); 
sheet.get_Range("A" + CurrentRowIndex.ToString(), ColPrefix + CurrentRowIndex.ToString()).BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, null); 
sheet.get_Range("A" + CompetencyStartRowIndex.ToString(), ColPrefix + CurrentRowIndex.ToString()).BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, null); 

也就是說第一行,假設CurrentRowIndex = 1和ColPrefix = 「B」,與得到的值替換變量將轉化爲

sheet.get_Range("A1", "B1").Font.Bold = true; 

在任何情況下,你要設置的NumberFormat。 (即將..)

sheet.Cells[Row, Column].NumberFormat = "0.00" 
+0

感謝您的幫助,但是這是不是我在找什麼。 我正在尋找一種方式來格式化單元格,而不是電池本身喜歡的背景或字體格式中的文本。 我希望文本以另一種方式來解釋 –

+0

我的回答的最後一行似乎回答你要找的內容。也許我應該刪除其餘的,因爲它是無關的。有時我會愚蠢地嘗試完成,當我應該簡明。 ;-) – David

+0

是的,最後一行解決了我的問題。謝謝:D –

相關問題