在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 format
HSSFCellStyle 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 cell
cell.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—时间,千分位,繁体,小数位的更多相关文章

  1. NPOI格式设置1

    using NPOI.SS.UserModel; using NPOI.HSSF.UserModel; //创建Execl IWorkbook hssfworkbook =new HSSFWorkbo ...

  2. NPOI格式设置

    using NPOI.SS.UserModel; using NPOI.HSSF.UserModel; //创建Execl IWorkbook hssfworkbook =new HSSFWorkbo ...

  3. OpenERP ODOO 千分位设置

    转自 :http://www.chinamaker.net/ OpenERP (ODOO)千分位设置在: 设置 > 翻译>语言 1)不同语言可以设置不同的千分位 2)格式选择: Separ ...

  4. edittext实现显示千分位格式

    在edittext中你在输入1123456789过程中自动显示为1,123,456,789这种千分位格式的.那么我们该怎么做呢? 查阅Android edittext api发现它有这样一个方法add ...

  5. Delphi获取与设置系统时间格式,即GetLocaleInfo和SetLocaleInfo

    在Delphi中,特别是在写管理系统软件时,经常要用到 FormatDateTime 以将 TDateTime 格式的日期时间转换成字符串形式的值显示或保存起来,或者用 StrToDateTime将字 ...

  6. sql为数字添加千分位(也就是钱的格式)

    感觉这个东西在项目中用得挺多的,之前在前台页面是用正则来处理,现在由于是数据查询,所以直接在查出数据的时候将其转为指定的千分位格式,省的前台再处理,不讲原理,因为我也看不懂,不过会用就行了,在网上找了 ...

  7. IIS时间格式设置

    IIS时间格式调整: (已解决)今天在用IIS7的时候发现一个关于时间格式的问题,当我在ASP中使用now()时间函数的时候,日期是以“/”来分隔,而不是以“-”来分隔的,使得我在运行程序的时候老出错 ...

  8. JS 数字格式千分位相互转换

    /** * 将数值四舍五入后格式化. * * @param num 数值(Number或者String) * @param cent 要保留的小数位(Number) * @param isThousa ...

  9. Windows 2012 英文版系统安装中文语言包及时间格式设置

    1.安装中文语言包:在运行窗口中输入"LPKSetup.exe",选择中文语言包安装.--------------------------------------------- 2 ...

随机推荐

  1. 【Python⑤】python序列---list和tuple

    sequence 序列 sequence(序列)是一组有顺序的对象的集合.序列可以包含一个或多个元素,也可以没有任何元素. 我们之前所说的基本数据类型,都可以作为序列的对象.对象还可以是另一个序列.序 ...

  2. HTML 中级2

    <colgroup> 标签用于对表格中的列进行组合,以便对其进行格式化. 通过使用 <colgroup> 标签,可以向整个列应用样式,而不需要重复为每个单元格或每一行设置样式. ...

  3. (DFS、bitset)AOJ-0525 Osenbei

    题目地址 简要题意: 给出n行m列的0.1矩阵,每次操作可以将任意一行或一列反转,即这一行或一列中0变为1,1变为0.问通过任意多次这样的变换,最多可以使矩阵中有多少个1. 思路分析: 行数比较小,先 ...

  4. 简单研究Loader笔记

    2015-11-11 18:25:34 1. Loader是什么? /** * Static library support version of the framework's {@link and ...

  5. xcode6.0以上创建一个Empty Application

    运行Xcode 6,创建一个Single View Application工程.   创建好后,把工程目录下的Main.storyboard和LaunchScreen.xib删除,扔进废纸篓.   打 ...

  6. 关于java 定时器的使用总结

    直接上代码,代码中有注释(代码中还有一些本人的其他测试,读者可以忽略不计).读者在代码中发现了bug,欢迎指正. package j2se.system.test; import java.text. ...

  7. 5、jvm内存回收——算法

    判定垃圾方法: 1.引用计数法:相互循环应用解决不了 2.根搜索算法: 垃圾搜集算法 1.标记--清除算法 2.复制算法 3.标记--整理算法 4.分代算法

  8. 基本ASP的语法规则

    1.ASP 文件能够包含服务器端脚本,这些脚本被分隔符 <% 和%> 包围起来. 服务器脚本在服务器上执行,可包含合法的表达式.语句.或者运算符. 向浏览器写输出,用命令response. ...

  9. 从新 开始学习java

    今天备受打击了,群里 发一个段 招租的代码.挺火的,一时没想出来.就亲测了一遍.做了两遍才看出来原因,对此感觉基础不扎实,从新学习,当做复习. 群里传的代码 亲测,代码. 了解缘由. package ...

  10. iframe 简单的一个用法 局部调用

    <iframe id="main_com" name="main_com" width="100%" height="750 ...