1、如数据库中是比较长的String类型的值“32100090238482”,在导出excel表的值为“3.2101E+12”
2、如数据库中的日期值为 “2010-08-04 14:45:30”,在导出excel表的值为“45:30.0”注:日期格式的值,在数据库中设定的字段类型为String
求解答,不胜感激。

解决方案 »

  1.   

    建议在输出到excel的时候,加上',比如:“32100090238482”改为“'32100090238482”
      

  2.   

    这个是一个麻烦的事, 就是把在导出的时候excel 把excel字段设置为字符串.这个不是js做的事,这是你后台语言做的事 (例如php,.net)
      

  3.   

        HSSFCellStyle cellStyle = demoWorkBook.createCellStyle(); //创建内容单元格样式
         HSSFDataFormat df =demoWorkBook.createDataFormat(); //创建数据格式类型
             cellStyle.setDataFormat(df.getFormat("@")); //内容单元格设为文本格式类型        String[] contentTotalArray = content.split(",");
            for (int i=0; i<contentTotalArray.length; i++) {
             HSSFRow row = demoSheet.createRow(i+1);         //创建内容行
             String[] contentArray = contentTotalArray[i].split(";");
               for (int j=0; j<contentArray.length; j++) {
             HSSFCell cell = row.createCell(j);//创建单元格
              cell.setCellType(HSSFCell.CELL_TYPE_STRING); //设置单元格类型
              cell.setCellValue(contentArray[j]); //设置单元格内容
              cell.setCellStyle(cellStyle); //设置单元格样式
    //                 cell.setCellValue(new HSSFRichTextString(contentArray[j])); 
             }
            }
      

  4.   

    我导出excel的代码是在网上找的,用的extjs代码如下:
    var  idTmr  =  ""; 
    Ext.ux.Grid2Excel = {
     
    Save2Excel : function(gridPanel){
       var cm = gridPanel.getColumnModel();
       var store = gridPanel.getStore();
      
       var it = store.data.items;
       var rows = it.length;
      
       var   oXL   =   new   ActiveXObject("Excel.application");     
       var   oWB   =   oXL.Workbooks.Add();     
       var   oSheet   =   oWB.ActiveSheet; 
      
       for (var i = 0; i < cm.getColumnCount(); i++) {
       
        if (!cm.isHidden(i)) {
         oSheet.Cells(1, i + 1).value = cm.getColumnHeader(i);
        }
       
        for (var j = 0; j < rows; j++) {
         r = it[j].data;
         var v = r[cm.getDataIndex(i)];
         var fld = store.recordType.prototype.fields.get(cm.getDataIndex(i)); 
        if(cm.getDataIndex(i) == 'jcrq')
        {
         alert(r[cm.getDataIndex(7)]);
          v = v.format('Y-m-d');    
        }     
         oSheet.Cells(2 + j, i + 1).value = v;
        }
       }
            oXL.DisplayAlerts = false;
       oXL.Save();
       oXL.DisplayAlerts = true;                    
       oXL.Quit();
       oXL = null;
         idTmr = window.setInterval("Cleanup();",1);
       }
    };
    function Cleanup() {
        window.clearInterval(idTmr);
        CollectGarbage();
    };
      

  5.   

    刚才发现另外一个问题,导出excel以后,会多一列空白。还不知道什么问题
      

  6.   

    问题解决了,谢谢大家。修改后的代码var  idTmr  =  ""; 
    Ext.ux.Grid2Excel = {
     
    Save2Excel : function(gridPanel){
       var cm = gridPanel.getColumnModel();
       var store = gridPanel.getStore();
      
       var it = store.data.items;
       var rows = it.length;
      
       var   oXL   =   new   ActiveXObject("Excel.application");     
       var   oWB   =   oXL.Workbooks.Add();     
       var   oSheet   =   oWB.ActiveSheet; 
      
       for (var i = 0; i < cm.getColumnCount(); i++) {
       
        if (!cm.isHidden(i)) {
         oSheet.Cells(1, i + 1).value = cm.getColumnHeader(i);
        }
       
        for (var j = 0; j < rows; j++) {
         r = it[j].data;
         var v = r[cm.getDataIndex(i)];
         var fld = store.recordType.prototype.fields.get(cm.getDataIndex(i)); 
        if(cm.getDataIndex(i) == 'jcrq')
        {
         oSheet.Range("H:H").NumberFormat = "yyyy/m/d h:mm:ss";
        }
        if(cm.getDataIndex(i) == 'idh')
        {
         oSheet.Range("E:E").NumberFormat = "0";
        }
        
         oSheet.Cells(2 + j, i + 1).value = v;
        }
       }
            oXL.DisplayAlerts = false;
       oXL.Save();
       oXL.DisplayAlerts = true;                    
       oXL.Quit();
       oXL = null;
         idTmr = window.setInterval("Cleanup();",1);
       }
    };
    function Cleanup() {
        window.clearInterval(idTmr);
        CollectGarbage();
    };
    单独设置了两列单元格的格式。有一列空格的问题还没解决,哎,继续