NPOI_2.1.3_學習記錄(6)-Excel中設置小數、百分比、貨幣、日期、科學計數法和金額大寫

在操做Excel時候一些特殊值的轉換是在所不免的,下面就給出轉換方法大同小異,代碼以下:ui

HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
ISheet sheet = hssfWorkbook.CreateSheet("Sheet1");
//設置第一列(Cell) 寬度
sheet.SetColumnWidth(0, 5000);
//建立格式化 實例對象
IDataFormat format = hssfWorkbook.CreateDataFormat();

// 保留兩位小數格式
// 建立一個單元格 "1.20"
ICell cell = sheet.CreateRow(0).CreateCell(0);
//設置單元格的值
cell.SetCellValue(1.2);
ICellStyle cellStyle = hssfWorkbook.CreateCellStyle();
//格式化值
cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00");
cell.CellStyle = cellStyle;

//貨幣 "¥20,000"
ICell cell2 = sheet.CreateRow(1).CreateCell(0);
cell2.SetCellValue(20000);
ICellStyle cellStyle2 = hssfWorkbook.CreateCellStyle();
cellStyle2.DataFormat = format.GetFormat("¥#,##0");
cell2.CellStyle = cellStyle2;

//科學計數法 "3.15E+00"
ICell cell3 = sheet.CreateRow(2).CreateCell(0);
cell3.SetCellValue(3.151234);
ICellStyle cellStyle3 = hssfWorkbook.CreateCellStyle();
cellStyle3.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00E+00");
cell3.CellStyle = cellStyle3;

//百分比 "99.33%"
ICell cell4 = sheet.CreateRow(3).CreateCell(0);
cell4.SetCellValue(0.99333);
ICellStyle cellStyle4 = hssfWorkbook.CreateCellStyle();
cellStyle4.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00%");
cell4.CellStyle = cellStyle4;

//電話號碼 "021-65881234"
ICell cell5 = sheet.CreateRow(4).CreateCell(0);
cell5.SetCellValue(02165881234);
ICellStyle cellStyle5 = hssfWorkbook.CreateCellStyle();
cellStyle5.DataFormat = format.GetFormat("000-00000000");
cell5.CellStyle = cellStyle5;

//金額大寫 - 壹貳叄 元
ICell cell6 = sheet.CreateRow(5).CreateCell(0);
cell6.SetCellValue(123);
ICellStyle cellStyle6 = hssfWorkbook.CreateCellStyle();
cellStyle6.DataFormat = format.GetFormat("[DbNum2][$-804]0 元");
cell6.CellStyle = cellStyle6;

//日期格式化
ICell cell7 = sheet.CreateRow(6).CreateCell(0);
cell7.SetCellValue(new DateTime(2004, 5, 6));
ICellStyle cellStyle7 = hssfWorkbook.CreateCellStyle();
cellStyle7.DataFormat = format.GetFormat("yyyy年m月d日");
cell7.CellStyle = cellStyle7;

//日期格式化
ICell cell8 = sheet.CreateRow(7).CreateCell(0);
cell8.SetCellValue(new DateTime(2005, 11, 6));
ICellStyle cellStyle8 = hssfWorkbook.CreateCellStyle();
cellStyle8.DataFormat = format.GetFormat("yyyy年m月d日");
cell8.CellStyle = cellStyle8;


FileStream file = new FileStream(@"test.xls", FileMode.Create);
hssfWorkbook.Write(file);
file.Close();

在上面的代碼中轉換的地方有兩個方法:spa

1.HSSFDataFormat.GetBuiltinFormat()
這種標識轉換的格式是Excel內嵌的格式,如:「0.00」,完整的Excel內嵌格式列表你們能夠看下圖。

2.format.GetFormat("000-00000000")
這種則是根據格式去格式化

Excel內嵌格式,如圖:code

image

相關文章
相關標籤/搜索