WritableWorkbook ww = Workbook.createWorkbook(fos);   
WritableSheet sheet = ww.createSheet("", 0);
jxl.write.Formula f = new jxl.write.Formula(3,3,"SUM(B4:B10)");
sheet.addCell(f);
执行到最后一句时,包错
java.util.MissingResourceException: Can't find resource for base name functions, locale zh_CN
java.lang.Throwable(java.lang.String)
java.lang.Exception(java.lang.String)
java.lang.RuntimeException(java.lang.String)
java.util.MissingResourceException(java.lang.String, java.lang.String, java.lang.String)
java.util.ResourceBundle java.util.ResourceBundle.getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader)
java.util.ResourceBundle java.util.ResourceBundle.getBundle(java.lang.String, java.util.Locale)
jxl.biff.formula.FunctionNames(java.util.Locale)
jxl.biff.formula.FunctionNames jxl.WorkbookSettings.getFunctionNames()
jxl.biff.formula.Function jxl.biff.formula.Function.getFunction(java.lang.String, jxl.WorkbookSettings)
jxl.biff.formula.Function jxl.biff.formula.StringFunction.getFunction(jxl.WorkbookSettings)
void jxl.biff.formula.StringFormulaParser.handleFunction(jxl.biff.formula.StringFunction, java.util.Iterator, java.util.Stack)
jxl.biff.formula.ParseItem jxl.biff.formula.StringFormulaParser.parseCurrent(java.util.Iterator)
void jxl.biff.formula.StringFormulaParser.parse()
void jxl.biff.formula.FormulaParser.parse()
void jxl.write.biff.FormulaRecord.initialize(jxl.WorkbookSettings, jxl.biff.formula.ExternalSheet)
void jxl.write.biff.FormulaRecord.setCellDetails(jxl.biff.FormattingRecords, jxl.write.biff.SharedStrings, jxl.write.biff.WritableSheetImpl)
void jxl.write.biff.WritableSheetImpl.addCell(jxl.write.WritableCell)
void com.sony.test.TestJavaExcel.main(java.lang.String [])

解决方案 »

  1.   

    根据你的错误现象看来,好像是由于你的本地资源出问题,你在程序中使用了本地化资源吧,就是java.util包中的Locale类的设置
      

  2.   


    是用到它底层的类FunctionNames  public FunctionNames(Locale l)
      {
        ResourceBundle rb = ResourceBundle.getBundle("functions", l);
        names = new HashMap(Function.functions.length);
        functions = new HashMap(Function.functions.length);    // Iterate through all the functions, adding them to the hash maps
        Function f = null;
        String n = null;
        String propname = null;
        for (int i =  0; i < Function.functions.length ; i++)
        {
          f = Function.functions[i];
          propname = f.getPropertyName();      n = propname.length() != 0 ? rb.getString(propname) : null;
          
          if (n != null)
          {
            names.put(f, n);
            functions.put(n, f);
          }
        }
      }