Code Monkey home page Code Monkey logo

octopus's People

Contributors

dependabot[bot] avatar huiyadanli avatar zerouwar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

octopus's Issues

实际使用中发现的一些问题

  1. 使用了 options 后该列必须不为空,个人认为该列是否为空应该由 is-blankable 判断。不然就无法处理该列选项可以为空的情况了。相关代码段:
    protected void setValue(String str, Field field, Object o) throws ParseException {
    ImportValidation validation = field.getImportValidation();
    if (!validation.isBlankable() && StringUtils.isEmpty(str)) {
    throw new CanNotBeBlankException();
    }
    if (validation.getOptions() != null && validation.getOptions().size() > 0 && !validation.getOptions().contains(str)) {
    throw new NotAllowValueException(validation.getOptions());
    }
    if (validation.getRegex() != null && !validation.getRegex().matcher(str).matches()) {
    throw new PatternNotMatchException(validation.getRegex());
    }
    super.setValue(str, field, o);
    }
  2. 获得单元格数据之后使用 String 进行传参,大问题可能没有,我看过一些 excel 导入导出框架也是这么做的。不过在应对一些比较大的数,或者长小数时会出现科学计数法导致无法转换的问题(可以通过格式化解决)。
    public static String getCellValue(Sheet sheet, int row, int col, String defaultValue) {
    Cell cell = sheet.getRow(row).getCell(col);
    if (cell == null) {
    return defaultValue;
    }
    switch (cell.getCellTypeEnum()) {
    case STRING:
    return cell.getStringCellValue();
    case FORMULA:
    case NUMERIC:
    return String.valueOf(cell.getNumericCellValue());
    case BOOLEAN:
    return String.valueOf(cell.getBooleanCellValue());
    default:
    return defaultValue;
    }
    }
  3. 数字相关的 Formatter 没有做判空处理,也就是说空的数据转换为 Integer Long 之类的会报错。这个我也未作测试,存疑。

以上问题麻烦作者看下呐。这个框架的验证功能很好用,要是再加上表头验证的功能就好了。看了很多 excel 导入导出框架的源码,就 Octopus 的代码读着最舒适。

关于性能的咨询

hello,请问项目有没有对性能做测试,能不能支持百万量级,30列的数据导出

两个小意见

首先,非常感谢作者这个工具, 实在是非常实用简洁,期待你的其他项目!!嘿嘿嘿!!!

  1. RowAssemblerSheetReaderTest 跑完的exceptions 好像不是 bean 里面定义的 wrongMsg 吧
  2. writer 的时候用 xml 好像也不是那么的优雅,你定义的ModelProperty标签里再加些属性去做这些事会不会更好

能否新增属性为集合对象

public class Applicants {
private int id;
private String name;
private List jobs;
private Date entryDate;
private boolean working = true;
}
大佬 能不能支持属性是集合的导出

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.