public static void main(String[] args) throws Exception {
Workbook wb = new Workbook("/Users/admin/Downloads/财务比较分析-test15_3.xlsx");
Worksheet s = wb.getWorksheets().get(“三大报表”);
Cells cells = s.getCells();
ListObject listObject = s.getListObjects().get(0);
String[] names = new String[listObject.getEndColumn() - listObject.getStartColumn() + 1];
int row = listObject.getStartRow() + 1;
for ( int i = listObject.getStartColumn(), idx = 0; i <= listObject.getEndColumn(); i++) {
String v = (String) cells.get(row, i).getValue();
v = v.substring(v.lastIndexOf(’.’) + 1);
names[idx++] = v;
}
Workbook wb2 = new Workbook("/Users/admin/Downloads/财务比较分析-Data.xlsx");
WorkbookDesigner designer = new WorkbookDesigner(wb);
designer.setDataSource(“TAB_回写_null_gaocheng_finance”,
new ListObjectDataCellTable(names, wb2.getWorksheets().get(“三大报表”)));
designer.process();
HtmlSaveOptions options = new HtmlSaveOptions();
options.setHiddenColDisplayType(HtmlHiddenColDisplayType. HIDDEN );
options.setHiddenRowDisplayType(HtmlHiddenRowDisplayType. HIDDEN );
ImageOrPrintOptions imgOptions = options.getImageOptions();
imgOptions.setSaveFormat(SaveFormat. SVG );
wb.save("/Users/admin/Downloads/财务比较分析-test15.html", options);
}
public static class ListObjectDataCellTable implements ICellsDataTable {
private int index = -1;
private ListObject listObject;
private Cells cells;
private String[] names;
public ListObjectDataCellTable(String[] names, Worksheet worksheet) {
this .names = names;
this .cells = worksheet.getCells();
listObject = worksheet.getListObjects().get(0);
}
public void beforeFirst() {
index = listObject.getStartRow();
}
public Object get( int index) {
return cells.get( this .index, index + listObject.getStartColumn()).getValue();
}
public Object get(String name) {
for ( int i = 0; i < names.length; i++) {
if (name.equals(names[i])) {
return cells.get(index, i + listObject.getStartColumn()).getValue();
}
}
return null ;
}
public String[] getColumns() {
return names;
}
public int getCount() {
return listObject.getEndRow() - listObject.getStartRow();
}
public boolean next() {
return ++index <= listObject.getEndRow();
}
}
Chart is empty in output html.
xlsx.zip (62.6 KB)