2014-01-30 144 views
0

我使用VS2008,ASP.net,C#.net。使用NPOI顯示印度風格的千位分隔符號碼

我有一個網絡應用程序,它使用NPOI dll導出到excel 2003. 如何在導出的excel表單中以印度風格(12,12,34,567.89)顯示帶有千位分隔符的數字?這些細胞與數量應適用於將式(總和())

回答

0

嘗試此

int value 773740; 
Response.Write(value.ToString("N")); 
//or 
Response.Write(value.ToString("#,#")); 

要將通常浮子格式化圖案之前格式化雙串利用千分的使用零和逗號分隔符,例如模式「0,0.0」將數字格式化爲使用數千個分隔符並且具有一個小數位。

String.Format("{0:0,0.0}", 12345.67);  // "12,345.7" 
String.Format("{0:0,0}", 12345.67);  // "12,346" 

多參考這裏http://www.csharp-examples.net/string-format-double/

+0

將這個數字12,12,34,567.89顯示使用此? – user3253876

0

根據您CultureInfo,它應該與格式字符串"N"工作。

檢查您的CultureInfo.CurrentCulture.NumberFormat.NumberGroupSizes。如果是{3, 2, },那麼你很高興。所以:

yourNumber.ToString("N") 

你可以給另一種文化如果您當前的文化是不好的,例如:

yourNumber.ToString("N", new CultureInfo("hi-IN")) 

在我的系統,(121234567.89).ToString("N", new CultureInfo("hi-IN"))"12,12,34,567.89"。這些是你想要的團體規模。

正如你可能知道,格式也可以進行這樣的:

string.Format(new CultureInfo("hi-IN"), "The number {0:N} is well formatted", yourNumber) 

增加:出於好奇,我只是測試它我的系統上特定文化使用{3, 2, }數組大小,它們是:

hi-IN 
bn-IN 
pa-IN 
gu-IN 
or-IN 
ta-IN 
te-IN 
kn-IN 
ml-IN 
as-IN 
mr-IN 
sa-IN 
kok-IN 
si-LK 
ne-NP 
bn-BD 
en-IN 
+0

Hi Nielson,當我們將其導出爲ex​​cel時,它將顯示爲文本。因此,我們無法在該單元格中應用sum()函數。可以在Excel中顯示爲印度數字樣式,並且該單元格應該用作數字。這意味着像sum()等內置函數可以在該單元格上執行 – user3253876

+0

@ user3253876我不是Excel專家。嘗試在這個問題中使用'[excel]'標籤(將爲你插入)。也許你需要在C#部分不需要格式化,只需要在Excel顯示數字時進行格式化?我試圖谷歌,並發現[如何在Excel中顯示印度貨幣格式?](http://chandoo.org/wp/2010/07/26/indian-currency-format-excel/)。 –

0

與NPOI試試這個神奇的形成與印度風格:

ICell cell = row.GetCell(0); 
cell.SetCellValue(1234567.89d); 
IDataFormat dataFormatCustom = workbook.CreateDataFormat(); 
cell.CellStyle.DataFormat = dataFormatCustom.GetFormat("[>=10000000]##\\,##\\,##\\,##0;[>=100000] ##\\,##\\,##0;##,##0.00");