Search in sources :

Example 1 with LinkedDataRecord

use of org.apache.poi.hssf.record.chart.LinkedDataRecord in project poi by apache.

the class HSSFChart method createValuesLinkedDataRecord.

private LinkedDataRecord createValuesLinkedDataRecord() {
    LinkedDataRecord r = new LinkedDataRecord();
    r.setLinkType(LinkedDataRecord.LINK_TYPE_VALUES);
    r.setReferenceType(LinkedDataRecord.REFERENCE_TYPE_WORKSHEET);
    r.setCustomNumberFormat(false);
    r.setIndexNumberFmtRecord((short) 0);
    Area3DPtg p = new Area3DPtg(0, 31, 0, 0, false, false, false, false, 0);
    r.setFormulaOfLink(new Ptg[] { p });
    return r;
}
Also used : Area3DPtg(org.apache.poi.ss.formula.ptg.Area3DPtg) LinkedDataRecord(org.apache.poi.hssf.record.chart.LinkedDataRecord)

Example 2 with LinkedDataRecord

use of org.apache.poi.hssf.record.chart.LinkedDataRecord in project poi by apache.

the class HSSFChart method createTitleLinkedDataRecord.

private LinkedDataRecord createTitleLinkedDataRecord() {
    LinkedDataRecord r = new LinkedDataRecord();
    r.setLinkType(LinkedDataRecord.LINK_TYPE_TITLE_OR_TEXT);
    r.setReferenceType(LinkedDataRecord.REFERENCE_TYPE_DIRECT);
    r.setCustomNumberFormat(false);
    r.setIndexNumberFmtRecord((short) 0);
    r.setFormulaOfLink(null);
    return r;
}
Also used : LinkedDataRecord(org.apache.poi.hssf.record.chart.LinkedDataRecord)

Example 3 with LinkedDataRecord

use of org.apache.poi.hssf.record.chart.LinkedDataRecord in project poi by apache.

the class HSSFChart method createLinkedDataRecord.

private LinkedDataRecord createLinkedDataRecord() {
    LinkedDataRecord r = new LinkedDataRecord();
    r.setLinkType(LinkedDataRecord.LINK_TYPE_TITLE_OR_TEXT);
    r.setReferenceType(LinkedDataRecord.REFERENCE_TYPE_DIRECT);
    r.setCustomNumberFormat(false);
    r.setIndexNumberFmtRecord((short) 0);
    r.setFormulaOfLink(null);
    return r;
}
Also used : LinkedDataRecord(org.apache.poi.hssf.record.chart.LinkedDataRecord)

Example 4 with LinkedDataRecord

use of org.apache.poi.hssf.record.chart.LinkedDataRecord in project poi by apache.

the class HSSFChart method createCategoriesLinkedDataRecord.

private LinkedDataRecord createCategoriesLinkedDataRecord() {
    LinkedDataRecord r = new LinkedDataRecord();
    r.setLinkType(LinkedDataRecord.LINK_TYPE_CATEGORIES);
    r.setReferenceType(LinkedDataRecord.REFERENCE_TYPE_WORKSHEET);
    r.setCustomNumberFormat(false);
    r.setIndexNumberFmtRecord((short) 0);
    Area3DPtg p = new Area3DPtg(0, 31, 1, 1, false, false, false, false, 0);
    r.setFormulaOfLink(new Ptg[] { p });
    return r;
}
Also used : Area3DPtg(org.apache.poi.ss.formula.ptg.Area3DPtg) LinkedDataRecord(org.apache.poi.hssf.record.chart.LinkedDataRecord)

Example 5 with LinkedDataRecord

use of org.apache.poi.hssf.record.chart.LinkedDataRecord in project poi by apache.

the class HSSFChart method createSeries.

public HSSFSeries createSeries() throws Exception {
    ArrayList<RecordBase> seriesTemplate = new ArrayList<RecordBase>();
    boolean seriesTemplateFilled = false;
    int idx = 0;
    int deep = 0;
    int chartRecordIdx = -1;
    int chartDeep = -1;
    int lastSeriesDeep = -1;
    int endSeriesRecordIdx = -1;
    int seriesIdx = 0;
    final List<RecordBase> records = sheet.getSheet().getRecords();
    /* store first series as template and find last series index */
    for (final RecordBase record : records) {
        idx++;
        if (record instanceof BeginRecord) {
            deep++;
        } else if (record instanceof EndRecord) {
            deep--;
            if (lastSeriesDeep == deep) {
                lastSeriesDeep = -1;
                endSeriesRecordIdx = idx;
                if (!seriesTemplateFilled) {
                    seriesTemplate.add(record);
                    seriesTemplateFilled = true;
                }
            }
            if (chartDeep == deep) {
                break;
            }
        }
        if (record instanceof ChartRecord) {
            if (record == chartRecord) {
                chartRecordIdx = idx;
                chartDeep = deep;
            }
        } else if (record instanceof SeriesRecord) {
            if (chartRecordIdx != -1) {
                seriesIdx++;
                lastSeriesDeep = deep;
            }
        }
        if (lastSeriesDeep != -1 && !seriesTemplateFilled) {
            seriesTemplate.add(record);
        }
    }
    /* check if a series was found */
    if (endSeriesRecordIdx == -1) {
        return null;
    }
    /* next index in the records list where the new series can be inserted */
    idx = endSeriesRecordIdx + 1;
    HSSFSeries newSeries = null;
    /* duplicate record of the template series */
    ArrayList<RecordBase> clonedRecords = new ArrayList<RecordBase>();
    for (final RecordBase record : seriesTemplate) {
        Record newRecord = null;
        if (record instanceof BeginRecord) {
            newRecord = new BeginRecord();
        } else if (record instanceof EndRecord) {
            newRecord = new EndRecord();
        } else if (record instanceof SeriesRecord) {
            SeriesRecord seriesRecord = (SeriesRecord) ((SeriesRecord) record).clone();
            newSeries = new HSSFSeries(seriesRecord);
            newRecord = seriesRecord;
        } else if (record instanceof LinkedDataRecord) {
            LinkedDataRecord linkedDataRecord = ((LinkedDataRecord) record).clone();
            if (newSeries != null) {
                newSeries.insertData(linkedDataRecord);
            }
            newRecord = linkedDataRecord;
        } else if (record instanceof DataFormatRecord) {
            DataFormatRecord dataFormatRecord = ((DataFormatRecord) record).clone();
            dataFormatRecord.setSeriesIndex((short) seriesIdx);
            dataFormatRecord.setSeriesNumber((short) seriesIdx);
            newRecord = dataFormatRecord;
        } else if (record instanceof SeriesTextRecord) {
            SeriesTextRecord seriesTextRecord = (SeriesTextRecord) ((SeriesTextRecord) record).clone();
            if (newSeries != null) {
                newSeries.setSeriesTitleText(seriesTextRecord);
            }
            newRecord = seriesTextRecord;
        } else if (record instanceof Record) {
            newRecord = (Record) ((Record) record).clone();
        }
        if (newRecord != null) {
            clonedRecords.add(newRecord);
        }
    }
    /* check if a user model series object was created */
    if (newSeries == null) {
        return null;
    }
    /* transfer series to record list */
    for (final RecordBase record : clonedRecords) {
        records.add(idx++, record);
    }
    return newSeries;
}
Also used : EndRecord(org.apache.poi.hssf.record.chart.EndRecord) SeriesTextRecord(org.apache.poi.hssf.record.chart.SeriesTextRecord) ArrayList(java.util.ArrayList) ChartRecord(org.apache.poi.hssf.record.chart.ChartRecord) SeriesRecord(org.apache.poi.hssf.record.chart.SeriesRecord) RecordBase(org.apache.poi.hssf.record.RecordBase) BeginRecord(org.apache.poi.hssf.record.chart.BeginRecord) DataFormatRecord(org.apache.poi.hssf.record.chart.DataFormatRecord) UnknownRecord(org.apache.poi.hssf.record.UnknownRecord) VCenterRecord(org.apache.poi.hssf.record.VCenterRecord) AxisUsedRecord(org.apache.poi.hssf.record.chart.AxisUsedRecord) LinkedDataRecord(org.apache.poi.hssf.record.chart.LinkedDataRecord) FooterRecord(org.apache.poi.hssf.record.FooterRecord) SCLRecord(org.apache.poi.hssf.record.SCLRecord) ChartRecord(org.apache.poi.hssf.record.chart.ChartRecord) ValueRangeRecord(org.apache.poi.hssf.record.chart.ValueRangeRecord) LegendRecord(org.apache.poi.hssf.record.chart.LegendRecord) SeriesTextRecord(org.apache.poi.hssf.record.chart.SeriesTextRecord) AxisParentRecord(org.apache.poi.hssf.record.chart.AxisParentRecord) DefaultDataLabelTextPropertiesRecord(org.apache.poi.hssf.record.chart.DefaultDataLabelTextPropertiesRecord) PrintSetupRecord(org.apache.poi.hssf.record.PrintSetupRecord) Record(org.apache.poi.hssf.record.Record) SeriesToChartGroupRecord(org.apache.poi.hssf.record.chart.SeriesToChartGroupRecord) EOFRecord(org.apache.poi.hssf.record.EOFRecord) AreaFormatRecord(org.apache.poi.hssf.record.chart.AreaFormatRecord) BeginRecord(org.apache.poi.hssf.record.chart.BeginRecord) HCenterRecord(org.apache.poi.hssf.record.HCenterRecord) EndRecord(org.apache.poi.hssf.record.chart.EndRecord) PlotGrowthRecord(org.apache.poi.hssf.record.chart.PlotGrowthRecord) UnitsRecord(org.apache.poi.hssf.record.chart.UnitsRecord) HeaderRecord(org.apache.poi.hssf.record.HeaderRecord) SeriesRecord(org.apache.poi.hssf.record.chart.SeriesRecord) BarRecord(org.apache.poi.hssf.record.chart.BarRecord) ChartFormatRecord(org.apache.poi.hssf.record.chart.ChartFormatRecord) AxisLineFormatRecord(org.apache.poi.hssf.record.chart.AxisLineFormatRecord) CategorySeriesAxisRecord(org.apache.poi.hssf.record.chart.CategorySeriesAxisRecord) ChartTitleFormatRecord(org.apache.poi.hssf.record.chart.ChartTitleFormatRecord) FrameRecord(org.apache.poi.hssf.record.chart.FrameRecord) PlotAreaRecord(org.apache.poi.hssf.record.chart.PlotAreaRecord) BOFRecord(org.apache.poi.hssf.record.BOFRecord) DataFormatRecord(org.apache.poi.hssf.record.chart.DataFormatRecord) ProtectRecord(org.apache.poi.hssf.record.ProtectRecord) TextRecord(org.apache.poi.hssf.record.chart.TextRecord) FontBasisRecord(org.apache.poi.hssf.record.chart.FontBasisRecord) AxisOptionsRecord(org.apache.poi.hssf.record.chart.AxisOptionsRecord) SeriesIndexRecord(org.apache.poi.hssf.record.chart.SeriesIndexRecord) SheetPropertiesRecord(org.apache.poi.hssf.record.chart.SheetPropertiesRecord) TickRecord(org.apache.poi.hssf.record.chart.TickRecord) AxisRecord(org.apache.poi.hssf.record.chart.AxisRecord) DimensionsRecord(org.apache.poi.hssf.record.DimensionsRecord) FontIndexRecord(org.apache.poi.hssf.record.chart.FontIndexRecord) LineFormatRecord(org.apache.poi.hssf.record.chart.LineFormatRecord) LinkedDataRecord(org.apache.poi.hssf.record.chart.LinkedDataRecord)

Aggregations

LinkedDataRecord (org.apache.poi.hssf.record.chart.LinkedDataRecord)7 ArrayList (java.util.ArrayList)2 BOFRecord (org.apache.poi.hssf.record.BOFRecord)2 DimensionsRecord (org.apache.poi.hssf.record.DimensionsRecord)2 EOFRecord (org.apache.poi.hssf.record.EOFRecord)2 FooterRecord (org.apache.poi.hssf.record.FooterRecord)2 HCenterRecord (org.apache.poi.hssf.record.HCenterRecord)2 HeaderRecord (org.apache.poi.hssf.record.HeaderRecord)2 PrintSetupRecord (org.apache.poi.hssf.record.PrintSetupRecord)2 ProtectRecord (org.apache.poi.hssf.record.ProtectRecord)2 Record (org.apache.poi.hssf.record.Record)2 RecordBase (org.apache.poi.hssf.record.RecordBase)2 SCLRecord (org.apache.poi.hssf.record.SCLRecord)2 UnknownRecord (org.apache.poi.hssf.record.UnknownRecord)2 VCenterRecord (org.apache.poi.hssf.record.VCenterRecord)2 AreaFormatRecord (org.apache.poi.hssf.record.chart.AreaFormatRecord)2 AxisLineFormatRecord (org.apache.poi.hssf.record.chart.AxisLineFormatRecord)2 AxisOptionsRecord (org.apache.poi.hssf.record.chart.AxisOptionsRecord)2 AxisParentRecord (org.apache.poi.hssf.record.chart.AxisParentRecord)2 AxisRecord (org.apache.poi.hssf.record.chart.AxisRecord)2