|
|
|
@ -43,40 +43,46 @@ public class Demo extends AbstractCommentExcelProcessor {
|
|
|
|
|
public void addCellComment( Sheet sheet, ElementCase report, Drawing drawing ) { |
|
|
|
|
//先获取结果报表,只有填报允许导出下拉框数据字典选项
|
|
|
|
|
Workbook workbook = sheet.getWorkbook(); |
|
|
|
|
ResultReport result = null; |
|
|
|
|
//匹配不预览导出的场景
|
|
|
|
|
if( report instanceof PageExcelExporterReport ){ |
|
|
|
|
result = Reflect.on(report).get("sourceReport"); |
|
|
|
|
}else{ |
|
|
|
|
result = ((PackedReport) report).getPackee(); |
|
|
|
|
} |
|
|
|
|
ResultWorkBook resultWorkBook = result.getResultWorkBook(); |
|
|
|
|
if( !(resultWorkBook instanceof WriteRWorkBook) ){ |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
//遍历单元格,对所有下拉框数据字典进行相同合并操作
|
|
|
|
|
Iterator iterator = report.cellIterator(); |
|
|
|
|
ExcelDictionaryBuilder builder = new ExcelDictionaryBuilder(); |
|
|
|
|
while(iterator.hasNext()){ |
|
|
|
|
Object cell = iterator.next(); |
|
|
|
|
if( cell instanceof DefaultPageCellElement ){ |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
CellElement oldCell = ((PageExportCellElement) cell).getOldCell(); |
|
|
|
|
Widget wgt = ((AbstractWidgetCellElement)oldCell).getWidget(); |
|
|
|
|
if( null == wgt ){ |
|
|
|
|
//适应混淆的代码
|
|
|
|
|
TemplateCellElement tcell = Reflect.on(oldCell).call("getBeFrom").call("get_ce_from").get(); |
|
|
|
|
wgt = tcell.getWidget(); |
|
|
|
|
ResultReport result = null; |
|
|
|
|
try{ |
|
|
|
|
//匹配不预览导出的场景
|
|
|
|
|
if( report instanceof PageExcelExporterReport ){ |
|
|
|
|
result = Reflect.on(report).get("sourceReport"); |
|
|
|
|
}else{ |
|
|
|
|
result = ((PackedReport) report).getPackee(); |
|
|
|
|
} |
|
|
|
|
if( null == wgt ){ |
|
|
|
|
continue; |
|
|
|
|
ResultWorkBook resultWorkBook = result.getResultWorkBook(); |
|
|
|
|
if( !(resultWorkBook instanceof WriteRWorkBook) ){ |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
if( !(wgt instanceof ComboBox) ){ |
|
|
|
|
continue; |
|
|
|
|
//遍历单元格,对所有下拉框数据字典进行相同合并操作
|
|
|
|
|
Iterator iterator = report.cellIterator(); |
|
|
|
|
|
|
|
|
|
while(iterator.hasNext()){ |
|
|
|
|
Object cell = iterator.next(); |
|
|
|
|
if( cell instanceof DefaultPageCellElement ){ |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
CellElement oldCell = ((PageExportCellElement) cell).getOldCell(); |
|
|
|
|
Widget wgt = ((AbstractWidgetCellElement)oldCell).getWidget(); |
|
|
|
|
if( null == wgt ){ |
|
|
|
|
//适应混淆的代码
|
|
|
|
|
TemplateCellElement tcell = Reflect.on(oldCell).call("getBeFrom").call("get_ce_from").get(); |
|
|
|
|
wgt = tcell.getWidget(); |
|
|
|
|
} |
|
|
|
|
if( null == wgt ){ |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
if( !(wgt instanceof ComboBox) ){ |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
builder.add(new ExcelDictionary((CalculatableResWorkSheet)result, |
|
|
|
|
(DictContainedCustomWriteAbleEditor)wgt),(ResultCellElement)cell); |
|
|
|
|
} |
|
|
|
|
builder.add(new ExcelDictionary((CalculatableResWorkSheet)result, |
|
|
|
|
(DictContainedCustomWriteAbleEditor)wgt),(ResultCellElement)cell); |
|
|
|
|
}catch(Exception e){ |
|
|
|
|
LogKit.error("不支持分页分sheet导出!"); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
//在excel中生成具体的选项数据
|
|
|
|
|
try { |
|
|
|
|