cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00");
再加句cell.CellStyle=cellStyle;  试试
http://lennon.wang.blog.163.com/blog/static/213560620091116634569/

解决方案 »

  1.   


    看这个例子
     //创建工作薄
                  HSSFWorkbook wk = new HSSFWorkbook();
                  //创建一个名称为mySheet的表
                  ISheet tb = wk.CreateSheet("mySheet");
                  //创建一行,此行为第二行
                  IRow row = tb.CreateRow(1);
                  ICellStyle style11 = wk.CreateCellStyle();
                  style11.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00"); 
                 for (int i = 0; i < 20; i++)   
                 {
                     ICell cell = row.CreateCell(i);  //在第二行中创建单元格
                     cell.SetCellValue(i);//循环往第二行的单元格中添加数据
                     cell.CellStyle = style11;  //要加上这行,
                    
                 }
                 using (FileStream fs = File.OpenWrite(@"c:/myxls.xls")) //打开一个xls文件,如果没有则自行创建,如果存在myxls.xls文件则在创建是不要打开该文件!
                 {
                     wk.Write(fs);   //向打开的这个xls文件中写入mySheet表并保存。
                     MessageBox.Show("提示:创建成功!");
                 }
      

  2.   


    非常感谢你的回复,但是导出的EXCEL还是文本格式的。
    感觉这句代码没起作用: style11.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00"); 
      

  3.   

              HSSFWorkbook workbook = new HSSFWorkbook();
                //通过工作本创建一个“页”
                ISheet sheet = workbook.CreateSheet("第一页");
                 ICellStyle style11 = wk.CreateCellStyle();
                 style11.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00"); 
      

  4.   

    http://www.cnblogs.com/xwgli/archive/2013/07/08/3178153.html
    单元格数字格式的问题NPOI向Excel文件中插入数值时,可能会出现数字当作文本的情况(即左上角有个绿色三角),这样单元格的值就无法参与运算。这是因为在SetCellValue设置单元格值的时候使用了字符串进行赋值,默认被转换成了字符型。如果需要纯数字型的,请向SetCellValue中设置数字型变量。
    sheet.GetRow(2).CreateCell(2).SetCellValue(123);
      

  5.   

            double doubV = 0;
                                double.TryParse(drValue, out doubV);
                                dataRow.CreateCell(j).SetCellValue(doubV);
      

  6.   


    switch (dtSource.Columns[oldColumnNames[i]].DataType.ToString())
                        {
                            case "System.String"://字符串类型   
                                newCell.SetCellValue(drValue);
                                break;
                            case "System.DateTime"://日期类型   
                                DateTime dateV;
                                DateTime.TryParse(drValue, out dateV);
                                newCell.SetCellValue(dateV);                            newCell.CellStyle = dateStyle;//格式化显示   
                                break;
                            case "System.Boolean"://布尔型   
                                bool boolV = false;
                                bool.TryParse(drValue, out boolV);
                                newCell.SetCellValue(boolV);
                                break;
                            case "System.Int16"://整型   
                            case "System.Int32":
                            case "System.Int64":
                            case "System.Byte":
                                int intV = 0;
                                int.TryParse(drValue, out intV);
                                newCell.SetCellValue(intV);
                                break;
                            case "System.Decimal"://浮点型   
                            case "System.Double":
                                double doubV = 0;
                                double.TryParse(drValue, out doubV);
                                newCell.SetCellValue(doubV);
                                break;
                            case "System.DBNull"://空值处理   
                                newCell.SetCellValue("");
                                break;
                            default:
                                newCell.SetCellValue("");
                                break;
                        }
      

  7.   

    这种如果数据有规律的话   建议还是  读取一个带格式化的模板excel   比较方便
      

  8.   


      ICell cell = row.CreateCell(0, CellType.Numeric);
      

  9.   


    cell.SetCellType(CellType.Numeric);这两种都行的