从POI类

时间:2017-06-21 16:30:08

标签: java apache-poi

更新 我按照Hovercraft Full Of Eels的建议改写了删除我的解决方案的原始问题

我正在尝试从POI访问私有方法。

//Class Available from library (cannot modify), below is a small part of class
public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
 private XSSFDataValidationHelper dataValidationHelper;
 @Override
 public int getDefaultColumnWidth() { ----------------(1)
    CTSheetFormatPr pr = worksheet.getSheetFormatPr();
    return pr == null ? 8 : (int)pr.getBaseColWidth();
 }
}

我需要一种方法,它可以给我一些类似下面的东西,而不是上面的

@Override
 public int getDefaultColumnWidth() {
   CTSheetFormatPr pr = worksheet.getSheetFormatPr();
   return (int)pr.getDefaultColWidth();
 }

从其他类实现getDefaultColWidth()是 -

public double getDefaultColWidth() {
        synchronized(this.monitor()) {
            this.check_orphaned();
            SimpleValue var2 = null;
            var2 = (SimpleValue)this.get_store().find_attribute_user(DEFAULTCOLWIDTH$2);
            return var2 == null?0.0D:var2.getDoubleValue();
        }
    }

实际原因继续阅读:

实际问题是我试图获取JAVA中Google电子表格导出的xlsx文件的默认列宽。问题是POI返回8个单位,这是默认值。它应该返回的值应该是14.43(大约)。我可以使用我想要使用的方法获得该值。

1 个答案:

答案 0 :(得分:-2)

从类中扩展的内容无法访问扩展类的私有字段或函数。如果你想从Base之外访问getSolution(),你需要公开它。