在操作Excel時候一些特殊值的轉換是在所難免的,下面就給出轉換方法大同小異,代碼如下:
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();
在上面的代碼中轉換的地方有兩個方法:
1.HSSFDataFormat.GetBuiltinFormat()這種標識轉換的格式是Excel內嵌的格式,如:“0.00”,完整的Excel內嵌格式列表大家可以看下圖。2.format.GetFormat("000-00000000")這種則是根據格式去格式化
Excel內嵌格式,如圖:
新聞熱點
疑難解答