NPOI 格式設定2—時間,千分位,繁體,小數位

來源:互聯網
上載者:User

標籤:style   http   使用   ar   for   sp   代碼   時間   bs   

在Excel中我們經常要設定格式,比如說日期格式(yyyymmdd)、小數點格式(1.20)、貨幣格式($2000)、百分比格式(99.99%)等等,這些東西在過去我們恐怕只能在伺服器端產生好,不但增加了伺服器端的代碼量,還造成了不必要的字串替換操作,如今NPOI將讓伺服器從這種完全沒有必要的操作中解放出來,一切都將由Excel在用戶端處理。

  使用NPOI時要注意,所有的格式都是通過CellStyle.DataFormat賦給儲存格的,而不是直接賦給儲存格。

  案例一  日期格式

  假設我們現在需要顯示的日期的格式為2008年5月5日,可以用下面的代碼產生:

 

HSSFSheet sheet = hssfworkbook.CreateSheet("new sheet");HSSFCell cell = sheet.CreateRow(0).CreateCell(0);cell.SetCellValue(new DateTime(2008,5,5));//set date formatHSSFCellStyle cellStyle = hssfworkbook.CreateCellStyle();HSSFDataFormat format = hssfworkbook.CreateDataFormat();cellStyle.DataFormat = format.GetFormat("yyyy年m月d日");cell.CellStyle=cellStyle;

 

  由於這裡的“yyyy年m月d日”屬於自訂格式(區別於 Excel內嵌的格式),所以必須用hssfworkbook.CreateDataFormat()建立一個HSSFDataFormat執行個體,然後使用format.GetFormat來擷取相應的格式,只要是Excel支援的格式表示方式,這種方式都能夠實現。

  案例二 保留2位小數

  假設我們有個儲存格的值為1.2,怎麼顯示成1.20呢?在Excel中可以用“0.00”來表示,所以下面的代碼就能完成:

 

// Create a row and put some cells in it. Rows are 0 based.HSSFCell cell = sheet.CreateRow(0).CreateCell(0);//set value for the cellcell.SetCellValue(1.2);//number format with 2 digits after the decimal point - "1.20"HSSFCellStyle cellStyle = hssfworkbook.CreateCellStyle();cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00");cell.CellStyle = cellStyle;

 

  這裡與上面有所不同,用的是HSSFDataFormat.GetBuiltinFormat()方法,之所以用這個,是因為0.00是Excel內嵌的格式,完整的Excel內嵌格式列表大家可以看這個視窗中的自訂欄表:

NPOI 格式設定2—時間,千分位,繁體,小數位

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.