1.日期格式
方式一:
<pre name="code" class="csharp"> var row1 = sheet1.CreateRow(0);
//创建一个日期单元格
var cellDate = row1.CreateCell(0);
cellDate.SetCellValue(DateTime.Now.ToString("yyyy年MM月dd日"));
方式二:
<pre name="code" class="csharp"> var cellDate1 = row1.CreateCell(1);
cellDate1.SetCellValue(DateTime.Now);
//创建单元格样式对象
var cellStyle = hssfworkbook.CreateCellStyle();
//创建格式化对象
HSSFDataFormat format = (HSSFDataFormat)hssfworkbook.CreateDataFormat();
cellStyle.DataFormat = format.GetFormat("yyyy年MM月dd日");//实例化单元格样式
cellDate1.CellStyle = cellStyle;
2.数字格式
比如电话号码,纯数字的身份证号,excel显示都会默认为科学计数法。
cellDate1.SetCellValue(123456789999);
//创建单元格样式对象
var cellStyle = hssfworkbook.CreateCellStyle();
//创建格式化对象
HSSFDataFormat format = (HSSFDataFormat)hssfworkbook.CreateDataFormat();
cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("0"); //0.00则是保留两位小数
cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00E+00");//再转换为科学计数法
cellDate1.CellStyle = cellStyle;
相反,有时候反而需要将数字显示为百分比,虽然是excel默认的。
3.货币格式
var cell2 = row1.CreateCell(2);
cell2.SetCellValue(10);
var cellStyle2 = hssfworkbook.CreateCellStyle();
HSSFDataFormat format = (HSSFDataFormat)hssfworkbook.CreateDataFormat();
cellStyle2.DataFormat = format.GetFormat("¥#,##0");
cell2.CellStyle = cellStyle2;
货币时常要求金额用中文大写,组需要两种格式组合(货币+中文大写)
cellStyle2.DataFormat = format.GetFormat("[DbNum2][$-804] ¥#,##0");
4.百分比
var cell3 = row1.CreateCell(3);
cell3.SetCellValue(0.25);
var cellStyle3 = hssfworkbook.CreateCellStyle();
cellStyle3.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00%");
cell3.CellStyle = cellStyle3;